Linux Shell 脚本实时检测 MySQL 状态 挂掉则立即自动重启

2020-11-19 12:01 785 抢沙发 龙笑天下
Dragon主题购买

Linux Shell 脚本实时检测 MySQL 状态 挂掉则立即自动重启

为什么会出现数据库连接错误

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

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

Mysql 数据库停止的原因

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

对于第 3 个原因的话,就建议大家一定要百度安装启用好 wordpress 的 Memcached 或 Redis 数据库缓存功能,设置方法可参考下文:

一文学会启用 Wordpress 的各种缓存,减轻服务器数据库压力加速优化网站访问速度-BG
一文学会启用 Wordpress 的各种缓存,减轻服务器数据库压力加速优化网站访问速度

一文学会启用 Wordpress 的各种缓存,减轻服务器数据库压力加速优化网站访问速度

网站的访问速度是个老生常谈的话题,其影响因素有很多,如:服务器配置、服务器性能、服务器带宽及网络状况、用户本地网络状况等等。在服务器和网络有限的情况下,我们的 Wordpress 站点怎么优化才...

Mysql 数据库停止的解决方法

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

1.宝塔面板

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

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

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

检测 PHP/NGINX/MYSQL 并重启

如果你想检测 php,nginx,mysqld,redis 是否运行并自动重启。可以参考下文:

Linux Shell 脚本实时检测 Nginx 状态 挂掉则立即自动重启-BG
Linux Shell 脚本实时检测 Nginx 状态 挂掉则立即自动重启

Linux Shell 脚本实时检测 Nginx 状态 挂掉则立即自动重启

很久前龙笑天写了一个检测 Mysql 状态并自动重启的脚本,详见下文,以解决数据库意外停止运行的情况。 最近入手了个新服务器,配置好环境后,居然诡异的会出现 Nginx 意外停止运行。龙笑天经过几经...

相关参考

解决 WordPress 建立数据库连接时出错 - WordPress 大学
Linux Shell 脚本实现检测 Mysql 状态,挂掉立即自动重启 - LJY IT BLOG
Linux VPS/服务器上用 Crontab 来定时执行实现 VPS 自动化 - VPSER

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

2018-11-27

2021-05-21

发表评论

表情 格式 贴图 链接 私密 签到
Dragon主题购买阿里云特价云服务器1核2G低至86元,N4共享型服务器3年仅需799元腾讯云特价云服务器1核2G 88元/年 2核4G3M688元/3年,更有千元代金券礼包免费领!
扫一扫二维码分享
×
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies. Learn more
Dragon