前几天瓦力箱子的网站突然出现打不开的情况,在浏览器输入网址后提示“Error Establishing a Database Connection”字样。
翻译过来就是:数据库建立连接出现错误,如下图:
这已经是第二次碰到这个问题了,首次出现是在上周,我是通过重启数据库解决的。看来问题没有得到彻底解决,这次得详细研究下原因。
查询MySQL错误日志
瓦力箱子这个WordPress网站目前采用VPS服务器和宝塔面板安装,所有服务器软件包括MySQL都在/www/server目录下。
我们可以使用如下命令查询MySQL错误日志:
cat /www/server/data/*.err
输入命令回车后,系统会输出会很大篇幅的错误日志,最新的日志在最下方,而且每条日志最前面都有时间戳,方便查询定位。
我很快就找到了那条错误日志:
12-29 16:16:54 10003 [Note] InnoDB: Database was not shutdown normally!
Database was not shutdown normally! 意思是数据库非正常关闭。可以推断出,MySQL数据库是被系统中止的。
系统为什么要关闭MySQL数据库呢?得查看系统日志。
查询系统日志
Linux系统的日志文件主要存放在/var/log目录下,由于系统日志文件非常庞大,直接打开会输出很久,我只需要查询12月29日当天的日记就可以了。
输入命令:
cat /var/log/messages | grep "Dec 29"
在输入结果中,瓦力箱子找到了这一条日志”Out of memory: Kill process 7610 (mysqld)“,意思就是内存不够了,结束MySQL进程。
kernel: Out of memory: Kill process 7610 (mysqld) score 52 or sacrifice child
这是我才想到,这两次数据库都是在我进行网站测速后出现的。测速时网站短时间内涌入大量访问请求,MySQL运行占用了全部内存,进而被系统终止。
解决办法
WordPress网站出现Error Establishing a Database Connection问题,目前解决办法有两个。
- 临时解决办法:重启MySQL数据库
- 永久解决办法:加大服务器内存或新增SWAP分区
重启MySQL命令:
service mysqld restart
好了,以上就是WordPress网站出现Error Establishing Database Connection问题的解决办法分享。瓦力箱子这个网站平时访客也不多,我就暂时通过重启数据库解决了。如果以后用户访问量增加了的话,再升级服务器配置吧。