Linux服务器mysql数据库自动停止的解决方法

  • A+
所属分类:网站建设

最近网站更换服务器,由原来的虚拟主机换成centos服务器,配置好后运行了半个月,各种折腾,也是一边学习一边捣鼓各种功能,随着访问量增大,这两天出现mysql数据库自动停止。只要稍微流量大一点,就会出现莫名的的数据库连接错误的情况,然后连上服务器查看,发现mysql进程被结束了,经常出现这种情况,这还怎么得了,然后第一时间查看mysql日志发现是被进程结束了,好端端的怎么就自己结束了呢,这时候想到应该是mysql进程占用太多内存,然后被系统给kill 掉了。

然后 var/log/messages 查看服务器的系统日志/var/log/messages。

然后看了下在mysql自动停止的时间段内,有什么异常的日志信息,日志有提示“Out of memory”这就可以判定,是服务器的内存使用不足,导致系统自动杀死的mysql的进程,果然是内存不足,通过升级服务器的内存可以解决。还有就是linux开启swap(虚拟内存) 也能相应的解决问题, 所以我选择了后者试一试。

在CentOS中添加Swap交换文件,防止内存不足时MYSQL崩溃

添加交换空间有两种选择:添加一个交换分区或添加一个交换文件。推荐你添加一个交换分区;不过,若你没有多少空闲空间可用, 则添加交换文件。

网站用的是宝塔面板,里面的硬盘空间没问题,不需要做相关的挂在操作。记得前面写过宝塔面板如何设置提高服务器性能里面提升性能介绍有一个Linux工具箱就可以设置物理内存 Swap,安装好以后设置很简单,如下图:

Linux服务器mysql数据库自动停止的解决方法

 

注意:swap分区一般为内存的2倍,但最大不超过2G。

后续:经过以上操作这两天发现网站速度整体提升,暂没发现其他问题,不过浏览量大到一定量的时候,记得及时增加运存。

图片引用自网络