Linux Shell脚本实时检测MySQL数据库状态,挂掉立即

发布时间:2022-06-23 10:31 来源:资源部落 阅读:165 作者:资源部落 栏目: 经验分享 欢迎投稿:712375056

相信很多朋友都遇到过 提示“建立连接时出错”(英文:“Error establishing a database connection”)这个错误,一般遇到这个错误,基本就 2 种情况:其一,WordPress 根目录下的 wp-config.php 文件里的数据连接信息有误;另一种情况,是 Mysql 数据库停止了。

第一种情况很少出现,大家遇到的基本都是第二种了,Mysql 数据库停了。下面就来说说这第二种情况出现的原因及怎么解决?

Mysql数据库停止的原因

通常来说,正常运行的 突然意外停止的原因,大多数是这几个:空间满了,服务器被攻击了,数据库读写多差了…

对于第三种情况的话,就建议大家一定要百度安装启用好 wordpress 的 或 Redis 数据库缓存功能。如果不会启用的话,可以付费找我哈。

Mysql数据库停止的解决方法

大多数情况下,我们都不可能知道 MySQL 数据库是否停止了,那么如何确保 MySQL 数据库停止后,及时启动 MySQL 呢?下面就来介绍解决方法。

1.

使用面板的话,就很简单了,前往“计划任务”菜单,“任务类型”选“shell ”,“执行周期”选“N 分钟”,然后填 15 分钟,“脚本内容”内容填下面的代码(谢谢群友 @川建国 提供的脚本):

pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
	bash /www/server/panel/script/rememory.sh
	/etc/init.d/mysqld start
fi

这样就可以每隔 15 分钟自动检测 MySQL 是否停止,停止的话就会自动启动了。PS:时间间隔 15 自行修改。

2.其他通用

如果你使用的其他面板程序的话,则可以使用下面的通用方法来解决。

2.1 制作脚本

将下面代码保存文件名为dr_check_mysql.sh,然后上传至服务器的root目录下,然后执行命令chmod x /root/dr_check_mysql.sh赋予该脚本文件执行权限:

#!/bin/bash
# author: 龙笑天
# website: https://www.ilxtx.com/linux-shell-auto-restart-mysql.html

pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
	/etc/init.d/mysql start
fi

2.2 添加定时任务

用 crontab -e 命令添加一个定时任务,其中的时间间隔 15 自行修改:

#auto restart mysql
*/15 * * * * /bin/bash /root/dr_check_mysql.sh

来源链接:https://www.zyhot.com/article/13031.html

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。