关于error establishing a database connection

起因

最近在进行网站检查的时候突然发现我的一个子网站挂了,提示error establishing a database connection, 如果是网站刚建立那好解决,80%的概率是数据连接参数不正确,或者是数据库端口没有开放

但是我这个网站运行很长一段时间了,之前一直好好的,突然之间就挂了, 而且这个数据库我使用的是docker进行维护,同时,在同一个mysql容器中我放置了好几个网站的数据,其他网站运行却是正常的

而且我通过第三方连接数据库的工具可以正常连接到被挂网站的数据库

通过以上情况可以排除以下原因:

  • mysql容器没有问题
  • 数据库端口和连接参数也没问题(已经检查过配置文件,没有被外部篡改过)
  • 网站程序正常运行

这种情况下该如何处理呢? 当然是找日志了

第一步:查看主程序日志,没问题

第二步:查看mysql容器日志,发现问题

Table './wordpress_wai/wp_options' is marked as crashed and should be repaired when using LOCK TABLES

数据库没有问题,但是表有问题

解决方案

对表进行修复即可:

  1. 执行修复指令

    1
    repair table wp_option
  2. 检查表的状态

    1
    check table wp_option

修复前最好先备份数据库

1
mysqldump -uroot -p密码 数据库名 >xxxxx.sql

如果表损坏比较严重,可能无法备份数据库

如果你不知道如何查看mysql日志,那么直接运行备份数据库指令,也能帮你检查数据库是否存在问题

本文为作者原创 转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%