今天有网友反馈打不开网站,提示“连接数据库错误”。首先排查磁盘是否被占满,因为之前出现过磁盘占满连不上数据库的情况,可阅读《WordPress网站占满Linux服务器磁盘空间,解决和排查方法》。
这次排查不是磁盘空间问题,尝试重启数据库service mysqld restart,出现错误提示:Job for mysqld.service failed because the control process exited with error code
接下来登录数据库也提示错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
网上搜索错误代码,找解决方案,发现都不行,于是请教网友大神OneinStack博主。简单询问了几句,排除空间满,查看/data/mysql/mysql-error.log
圈出了下面的几行错误代码:
2022-04-10 9:58:30 0 [ERROR] InnoDB: Missing FILE_CHECKPOINT at 80579362363 between the checkpoint 80579362363 and the end 80579362304.
2022-04-10 9:58:30 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2022-04-10 9:58:30 0 [Note] InnoDB: Starting shutdown...
然后给出了解决方法(不熟悉命令的服务器一定要备份快照):
执行命令:
cd /data/mariadb
mv ib_logfile0 ib_logfile0.bak
mv ib_logfile1 ib_logfile1.bak
搜索下logfile的文件
执行命令:ls | grep logfile
重启数据库,完美解决!
大佬给出的错误原因是由于重启服务器的时候,意外断电造成的。
附参考文档:mysql mlog_checkpoint_mariadb服务器断电重启之后Missing MLOG_CHECKPOINT的解决办法