早上打开网站时发现报错了,而且报的错误居然是:建立数据库连接时出错!!!昨天晚上其实也遇到了一次。晕哈,如果在本地调试的时候出现这样的提示,一般来讲,那就是数据库用户名啊密码啊或者数据库名不对导致的。但是这里,我很肯定也很确定,不是这个问题。

  马上ssh登录上服务器,发现内存几乎被掏空(用free -m),你要知道我昨天正是害怕网站流量的提升导致服务器内存不足,特意把内存从1G加到2G,花了100多块钱。再用命令 top 查看,又是 php-fpm!大量的 php-fpm 进程导致CPU和内存资源耗尽。有点题外话了,本文其实就想说明,好好的网站报“建立数据库连接时出错”正是由于内存不足,导致系统kill掉了mysql进程,从而导致网站连接不上数据库。搜了一下,发现不少阿里云的同僚也遇到这样的问题,他们还向阿里云的技术人员进行了反映,结果是一样的:SQL请求占用过多内存,导致mysql进程停止,所以数据库就连不上,故报此错误。

  解决方法就不好说了,因为你得确定是什么原因导致的系统资源消耗,再对症下药。阿里云的客服技术员也不可能帮你解决,因为他们只保证你的虚拟机VPS没有问题,由于里面安装的应用导致的系统资源爆长并不是他们的事情。