监听mysql是否挂了,如果挂了就重启mysql
方式一:
#!/bin/bash
pgrep -x mysqld &>
/dev/null
if
[ $? -
ne
0 ]
then
echo
"At time: `date` :MySQL is stop ."
>>
/var/log/mysql_messages
service mysql start
#echo "At time: `date` :MySQL server is stop."
else
echo
"MySQL server is running ."
fi
方式二: 判断端口和进程是否同时存在
portNum=`netstat -lnt | grep 3306 | wc -l` // 注: wc -l 命令是显示文件的行数,也就是说如果能查到3306就至少会有一行内容。
mysqlProcessNum=`ps -ef | grep mysqld | grep -v grep | wc -l`
if [ $portNum -eq 1 -a $mysqlProcessNum -eq 1 ]
then
echo "db is running"
else
service mysql start
fi
方式三: 模拟web服务器,连接mysql并进行操作,判断操作是否成功
mysqlStatus=`mysql -uroot -p'密码' -S /data/3306/mysql.sock -e "select version();" > $/dev/null`
// 或者 mysql -uroot -p密码 -S /data/3306/mysql.sock -e "select version();" > /dev/null 2> $1
if [ $? -eq 0 ] ; then
echo "db is running"
else
service mysql restart
fi
方式四:通过java程序方式监控mysql