首页 > 教程 >
Linux 定时检测 MySQL 数据库是否宕机并自动重启
2023-02-16教程围观次
简介我们建站初期都会选择一台小内存的VPS服务器,这样降低建站初期的成本,再说初期访问量很小没有必要使用高配服务器,但是使用过程中不知道是不是内存不够的原因,MySQL数据库服务总是会自动停止,就是说数据库都宕机了。那么有没有什么办法在Linux上定时检测MySQL服务是否宕机,并自动重启服务Linux上定时检测MySQL服务是否宕机,并自动重启服务呢?本文分享个基于Shell脚本和crontab命令
我们建站初期都会选择一台小内存的 VPS 服务器,这样降低建站初期的成本,再说初期访问量很小没有必要使用高配服务器,但是使用过程中不知道是不是内存不够的原因, MySQL 数据库服务总是会自动停止,就是说数据库都宕机了。那么有没有什么办法在 Linux 上定时检测 MySQL 服务是否宕机,并自动重启服务 Linux 上定时检测 MySQL 服务是否宕机,并自动重启服务呢?本文分享个基于 Shell 脚本和 crontab 命令的定时检测 MySQL 服务是否宕机,并自动重启服务的方案,如果你也遇到了这种问题,可是尝试用这种解决办法。
一、检测 MySQL 服务脚本
MySQL 自动重启的 Shell 脚本非常简单,整个逻辑就是检测是否有 MySQL 的进程,如果没有就重启并记录到日志文件中:
pgrep mysqld &> /dev/nullif [ $? -gt 0 ]thenlnmp restartecho "MySQL stopped at time: `date` " >> /root/log/mysql_listen.logfi
二、定时任务
定时检测的功能就是通过 crontab 实现的,具体的介绍可以参考:《Linux 利用 crontab 实现定时任务格式与用法简介》
例如我这里设置的是每 5 分钟检查一次 MySQL 服务:
*/5 * * * * /root/mysql.sh > /dev/null 2>&1 &
三、更多脚本
除了检测 MySQL 服务外,相应的还可以检测 PHP 服务、Nginx 服务等,在脚本上略微改动下就好了:
pgrep mysqld &> /dev/nullif [ $? -gt 0 ]thenlnmp restartecho "MySQL stopped at time: `date` " >> /root/log/mysql_listen.logfi pgrep nginx &> /dev/nullif [ $? -gt 0 ]thenlnmp restartecho "Nginx stopped at time: `date` " >> /root/log/mysql_listen.logfi pgrep php-fpm &> /dev/nullif [ $? -gt 0 ]thenlnmp restartecho "Php stopped at time: `date` " >> /root/log/mysql_listen.logfi
这样再也不要担心数据库莫名其妙宕机了,使用上述代码 Linux 会定时检测 MySQL 数据库服务是否宕机,如果出现数据库宕机则自动重启数据库服务。
下载链接:网站源码/小程序源码/网站模板下载
下载排行
- 最新版去水印小程序源码/基于WordPress的短视频去水印小程序源码
- 某鱼最近卖的很火蓝色版微信去水印小程序源码+接口
- 最新短视频去水印小程序源码/带流量主/外卖CPS系统/批量解析/修改MD5
- WordPress主题 JustNews5.2.2 + QAPress问答插件适合源码站虚拟资源站个人博客
- 最新去水印小程序源码分享/无需后台/对接接口/支持全网去水印功能
- 知识付费小程序源码升级版知识付费变现小程序源码+卡密-独立后台版本
- 最新去水印小程序源码分享/无需后台/对接接口/支持全网去水印功能
- 社群空间站一键发布微信群精品优质社群的搜索和发布平台
- 起点导航系统源码最新V2.6开源可运营版
- TooNaughty网址导航主题/WordPress主题下载