首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

借助shell脚本,解决MySQL服务自动停止的问题

几个月前写了《MySQL总是停止服务,卸载服务器安全防护组件,轻松解决》这篇文章,在这篇文章发布后,虽然MySQL服务自动停止的频率降低了,但实际上并没有从根本上解决这个问题,MySQL服务仍然会以大约每周一次的频率自动停止,于是开始寻找其他方法。

其实最根本的方法肯定是升级服务器配置,提升服务器的带宽,但这也就意味着运营成本的增加,对于非凡博客这种小网站来说,还是寻找其他曲线救国的方案更合适。

看到有网友分享宝塔面板有自动检测MySQL服务状态并自动修复的功能,但我又不喜欢安装各种面板,不过面板的各项功能底层逻辑肯定是通过执行Linux命令完成了,于是就开始考虑通过Linux相关命令实现自动检测MySQL状态的功能,这里要做的有两步:

1.新建Shell脚本,脚本实现的功能是检测MySQL服务状态,如果发现当前运行的程序进程中没有MySQL,那么就自动执行启动MySQL服务的命令,我们可以在/root/目录下新建一个check_mysql.sh的脚本文件,脚本的内容:

#!/bin/bash

pgrep -x mysqld &> /dev/null

if [ $? -ne 0 ];then

/etc/init.d/mysqld start

fi

2.借助计划任务实现脚本自动化执行,主要目的是做到无人值守自动检测:

通过命令 crontab -e进入计划任务的编辑页面,输入任务命令

*/15 * * * * /root/check_mysql.sh

这条命令的意思是每隔15分钟执行一次check_mysql.sh检测脚本。

最终实现的效果是系统每15分钟执行一次check_mysql.sh脚本,如果发现当前运行的程序进程中没有MySQL,那么Shell脚本将会自动执行启动MySQL服务的命令。

从3月份到现在的6月份,至少我每天打开非凡博客的时候都能正常访问,或许在我没有访问的时间里也曾偶尔出现过MySQL服务自动停止,但至少等到我每次发现以后再动手启动了。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230613A02VWZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券