今天向往常一样打开网站,网页上除了“Error establishing a database connection”,其它一切空白。马上查看同服务器的其它网站,发现也是同样的问题。之前网站迁移,测试功能都正常的,未改动任何文件,突然间不能访问,瞬间感觉可能数据库宕了。
解决问题最快的方法莫过于谷歌,也是习惯性动作,看看有没有可以直接借鉴的处理方法。
打开几个参照试了一下,都不能解决问题。接下来就只能靠自己了。
第一步:查看服务器日志,无任何异常(数据库和文件都正常)。
第二步:打开wp-config.php,找到
开发者专用:WordPress调试模式。
将define(‘WP_DEBUG’, false)中的“false”改成“true”。
备注:将这个值改为true,WordPress将显示所有用于开发的提示。
之后刷新网页,网页显示:
Warning: mysqli_real_connect(): (HY000/2002): No such file or directory in /xxx/wp-includes/wp-db.php on line 1531
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /xxx/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): No such file or directory in /xxx/wp-includes/wp-db.php on line 1562
三项内容全部指向数据库,所以就开始排查数据库,通过phpMyAdmin在线访问数据库,就提示HY000/2002错误,但查看数据库后的结果显示数据没有改动痕迹而且完整。
这下悲剧了,网页所有错误都指向数据库问题,但数据库又没有问题。那问题出哪里了呢?那就继续排查系统问题,一查原来是可用内存只有50M了。原来是服务器可用内存支撑不了的原因。
知道了问题就很好解决了,重启数据库,重启服务器,网站又可以访问了。解决这种情况没有特别好的方法,优化网站效果不大,提升内存是关键。
《解决WordPress“Error establishing a database connection”的方法》有一个想法