检查远程mysql是否正在运行

The*_*gia 1 mysql cron shell-scripting

我想要一个 bash shell 脚本,我可以使用 cron 作业运行它来检查远程服务器上的 mysql 是否正在运行。如果是,则什么都不做,其他启动服务器。

cronjob 将每分钟检查远程服务器是否存在实时(或非)mysql。我可以自己编写 cron 作业,但我需要有关检查远程 mysql 是否启动或关闭的 shell 脚本的帮助。检查后的响应是向上还是向下并不重要。但是检查很重要。

谢谢你。

Rol*_*DBA 5

mysqld使用mysqladmin连接

MySQL 文档说 mysqladmin ping

检查服务器是否可用。如果服务器正在运行,mysqladmin 的返回状态为 0,否则为 1。即使在出现拒绝访问等错误的情况下,这也是 0,因为这意味着服务器正在运行但拒绝连接,这与服务器未运行不同。

首先创建一个没有权限的用户

mysql> GRANT USAGE ON *.* TO ping@'%' IDENTIFIED BY 'ping';
Run Code Online (Sandbox Code Playgroud)

创建一个这样的脚本

#!/bin/bash

MYSQL_USER=ping
MYSQL_PASS=ping
MYSQL_CONN="-u${MYSQL_USER} -p${MYSQL_PASS}"
mysqladmin ping ${MYSQL_CONN} 2>/dev/null 1>/dev/null
MYSQLD_RUNNING=${?}
if [ ${MYSQLD_RUNNING} -eq 1 ]; then service mysql start ; fi
Run Code Online (Sandbox Code Playgroud)

根据需要将该脚本放在 crontab 中

确保防火墙在 3306 上打开,以便 ping@'%' 可以连接。