功能:檢測 3306 端口 → 端口不存在啟動服務 → 端口存在測試連線 → 連線失敗殺掉所有進程並重啟 → 記錄日誌。
#!/bin/bash
/usr/bin/nmap localhost | grep 3306
if [ $? -eq 0 ]; then
/usr/local/mysql/bin/mysql -uxxxxx -pxxxxxx --connect_timeout=5 -e "show databases;"
if [ $? -ne 0 ]; then
/bin/ps aux | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9
/usr/local/mysql/bin/mysqld_safe --user=mysql & > /dev/null
fi
else
/usr/local/mysql/bin/mysqld_safe --user=mysql & > /dev/null
fi
nmap 掃描本機 3306 端口。SHOW DATABASES。kill -9 所有 mysql 進程 (避免正常 shutdown 掛起),用 mysqld_safe 重啟。mysqld_safe。mysql、mysqld_safe 路徑。SHOW DATABASES 權限。crontab 每分鐘檢查:* * * * * /path/check_mysql.sh。