mysql老是自动停止怎么办?mysql服务自动停止的解决方法

admin3年前主机评测64

Mysql老是自动停止怎么办?

在生产环境中,很多人会经常遇到mysql自动停止的情况,这其中当然也包括mariadb数据库,究其原因还是内存耗尽,导致数据库停止工作。主要提示为“can’t connect to local mysql server through socket……”。还有的是这样提示的“Error establishing a database connection”如下图所示:

服务器上安装的 MySQL,会出现自动停止的情况。出现这种现象,通常是服务器的内存不足导致的。

具体可以通过服务器日志来进行分析排查:

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

看下在 MySQL 自动停止的时间段内,有什么异常的日志信息,如果日志有提示 Out of memory 就可以判定,是服务器的内存使用不足,导致系统自动杀死的 MySQL 的进程!

我看大部分人的解决办法几乎都是这样的:

service mysqld restart

然而,用这样的方法确实可以解决问题,但是治标不治本,尤其是想wordpress这样的程序,消耗内存极其严重,你不知道他什么时候就会自动停止,这样的解决方法无非就几个:

1、升级服务器硬件,加大内存。

2、优化程序,减少内存开销

3、监控mysql进程是否为启动,如果停止,则自动启动数据库

(1)下面贴出代码:

#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH pgrep -x mysqld /dev/null if [ $? -ne 0 ] echo At time:$(date) :MySQL is stop . /var/log/mysql_messages service mysqld start fi

(2)或者登陆宝塔面板后台 – 计划任务。

任务类型:Shell脚本 任务名称:mysql进程守护执行周期:比如每1分钟监控执行一次,具体的周期请根据自己服务器实际情况来设置。

使用下面的代码:

pgrep -x mysqld /dev/null

if [ $? -ne 0 ];then

bash /www/server/panel/script/rememory.sh

/etc/init.d/mysqld start

fi

把上面的代码加入到计划任务,每隔几分钟检测一次,这样就比较稳妥了。现在用宝塔的人比较多,如果你用的是宝塔,把上面的代码从“计划任务”=》“添加计划任务”,然后填写你的任务名称,选择好时间,最后加入上面的代码,完工!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

宝塔mysql自动停止怎么办?宝塔面板MySql进程守护脚本

宝塔mysql自动停止怎么办?前段时间小编把一台VPS环境从LNMP换到了宝塔面板,结果经常MySQL数据库莫名其妙的自动停止,看日志也没看出来是什么问题,所以就只能来一招最简单的数据库进程守护了。宝...

mysql数据库总是自动关闭怎么办?宝塔数据库mysql总是自动停止解决

mysql数据库总是自动关闭怎么办?最近由于换了个新服务器,mysql数据库总是自动关闭停止,重装也解决不了在不想换服务器的情况下可以使用以下几种方法!方法一:安装宝塔面板【linux工具箱】Linu...