centos7.6下定时监测MySQL进程终止后自动重启的方法

摘要:
前言最近发现MySQL服务隔三差五就会挂掉,导致我的网站和爬虫都无法正常运作。chmod777monitor.sh然后运行脚本测试一下,显示mysql正在运行。结语这样,我们就实现了五分钟定时检测MySQL进程服务。

前言

最近发现MySQL服务隔三差五就会挂掉,导致我的网站和爬虫都无法正常运作。自己的网站是基于MySQL,在做爬虫存取一些资料的时候也是基于MySQL,数据量一大了,MySQL它就有点受不了了,时不时会崩掉,虽然我自己有网站监控和邮件通知,但是好多时候还是需要我来手动连接我的服务器重新启动一下我的MySQL,这样简直太不友好了,所以,我就觉定自己写个脚本,定时监控它,如果发现它挂掉了就重启它。

好了,闲言碎语不多讲,开始我们的配置之旅。

编写Shell脚本

首先,我们要编写一个shell脚本,脚本主要执行的逻辑如下:

显示mysqld进程状态,如果判断进程未在运行,那么输出日志到文件,然后启动mysql服务,如果进程在运行,那么不执行任何操作,可以选择性输出监测结果。

执行如下命令:

cd /etc/mysql
touch listen.sh
vi listen.sh

进入到vi中,我们添加如下脚本内容:

#!/bin/bash
pgrep mysqld &> /dev/null
if [ $? -gt 0 ]
then
echo "`date` mysql is stop"
service mysql start
else
echo "`date` mysql running"
fi

其中 pgrep mysqld 是监测mysqld服务的运行状态,&> /dev/null 是将其结果输出到空文件,也就是不保存输出信息

$? 是拿到上一条命令的运行结果,-gt 0 是判断是否大于0,后面则是输出时间到日志文件,然后启动mysql,否则不启动mysql

保存好了,那么我们执行如下的命令,来测试一下。

centos7.6下定时监测MySQL进程终止后自动重启的方法第1张

嗯,编辑完了.sh文件之后,我们首先要对其进行授权,增加可执行的权限。

chmod 777 monitor.sh

然后运行脚本测试一下,显示mysql正在运行。把mysql关掉,运行脚本,便会检测到mysql已关闭,然后重新启动了mysql,再次运行,便会发现mysql正常运行了。

修改日志输出

好,接下来我们把输出的内容保存到日志里。修改脚本文件如下

#!/bin/bash
pgrep mysqld &> /dev/null
if [ $? -gt 0]
then
echo "`date` mysql is stop" >> /var/log/mysql_listen.log
service mysql start
elseecho "`date` mysql running" >> /var/log/mysql_listen.log
fi

这样,每执行一次脚本,输出结果都会被保存到 /var/log/mysql_listen.log 中了。

添加定时任务

好了,脚本可以顺利执行了,那么我们就需要定时调用一下这个脚本来运行了,我们需要用到 cron。

首先我们需要编辑一下corn调度表格,命令如下:

crontab -e

如果你是第一次编辑这个,他会让你选择文件打开方式,随便选一个数字就好了。

比如我们用GNU打开的,我们就在它的最后一行添加下面的一句话即可。

centos7.6下定时监测MySQL进程终止后自动重启的方法第2张

/5代表五分钟执行一次,后面的四个点依次代表了,小时,日,月,星期。如果想要时间长一些,比如一小时调度一次,那就设置一下后面第一个*就好了。

好,保存一下,重启cron服务。

service cron restart

嗯,调度任务已经添加进去了,这样,每五分钟系统就会调用一下刚才写的那个脚本。

过一段时间,我们来看一下运行效果,嗯,监控跑的很顺利呐。

centos7.6下定时监测MySQL进程终止后自动重启的方法第3张

结语

这样,我们就实现了五分钟定时检测MySQL进程服务。

原文引自:https://cloud.tencent.com/developer/article/1004643

免责声明:文章转载自《centos7.6下定时监测MySQL进程终止后自动重启的方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇多重网格方法(Multigridmethod)游戏素材网站下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

android logd 原理及实现

一、logd介绍 logd 是Android L版本提出来的概念,其作用是保存Android运行期间的log(日志)。在Android L之前,log由kernel的ring buffer 保存,在Android L之后,log保存在用户空间。 1)  logd进程启动 系统启动到init函数时会解析init.rc文件,启动logd进程和logd-rein...

连接MySQL报 unblock with 'mysqladmin flush-hosts' 问题解决

    工作中突然遇到有一台服务器连接不上MySQL数据库,报错如下,其他服务都正常。特此总结一下解决方法。 可以看出,产生的原因是: 同一个ip在短时间内产生太多(超过mysql数据库max_connect_errors的最大值)中断的数据库连接而导致的阻塞 max_connect_errors是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试...

Mysql中文检索匹配与正则

今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了: SELECT * FROM custom WHERE custom_realname LIKE '%d%' 查询了一下,发现以下说明: (最后修改为: SELECT * FROM custom WHERE custom_realname LIKE BINARY '%d%...

MySQL数据库增删改字段(属性)

MySQL数据库的各种操作今天在这里总结一下: 一、增加 1.在已有的表中添加新的字段: 首先是增加表的字段,比如一张表原本没有字段“ Time ”,现在我们要增加这样一个字段,可以用下面的SQL语句实现: alter table +table的名字+ add + 字段名字 + 数据类型+分号,以下SQL在表testTable中插入了2个字段,font和a...

Linux下安装mysql-5.7.30详细步骤

前言下面记录了我在Linux环境下安装Mysql的完整过程,实操记录,只为让更多人少踩坑,本次安装版本为:mysql-5.7.30,64位操作系统官网下载地址:mysql-5.7.30-el7-x86_64.tar.gz百度网盘地址:百度网盘地址 提取码:lyqh 1、安装前准备检测系统是否自带mysql [root@localhost /]# rpm -...

MySQL 集群

MySQL Galera介绍主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 真正的并行复制,行级 用户可以直接连接集群,使用感受上与MySQL完全一致 优势: 因为是多主,所以不存在Slave lag(延迟) 不存在丢失交易的情况 同时具有读和写的扩展...