首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 狀態監控與自動重啟 Shell 腳本:端口檢測 + 連線驗證 + 進程守護

     編輯:MySQL 資料庫相關知識

MySQL 服務高可用守護腳本 (Linux)

功能:檢測 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

邏輯說明

  1. nmap 掃描本機 3306 端口。
  2. 端口開啟:用指定帳號測試連線 (5 秒超時),執行 SHOW DATABASES。
  3. 連線失敗:kill -9 所有 mysql 進程 (避免正常 shutdown 掛起),用 mysqld_safe 重啟。
  4. 端口不存在:直接啟動 mysqld_safe。

部署建議

  • 依安裝路徑調整 mysql、mysqld_safe 路徑。
  • 建立專用監控帳號,僅授予 SHOW DATABASES 權限。
  • 加入 crontab 每分鐘檢查:* * * * * /path/check_mysql.sh。
  • 生產環境建議使用更完善的監控系統 (Zabbix, Prometheus + node_exporter, MHA 等)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved