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

MySQL Instance Manager (IM) 實戰:多實例統一監控與生命週期管理

     編輯:MySQL 資料庫相關知識

什麼是 Instance Manager?

MySQL Instance Manager (IM) 是一個透過 TCP/IP 埠(預設 1999)運行的守護進程,負責啟動、監控、重啟、關閉多個 mysqld 實例。IM 讀取 my.cnf 中的 [manager] 與 [mysqldN] 區段。注意:IM 本身若掛掉,所有受管實例皆會停止;IM 會嘗試自動拉起異常退出的實例。

配置檔範例 (my.cnf)

[manager]
user = mysql
default-mysqld-path = /usr/local/mysql/bin/mysqld
socket = /tmp/manager.sock
pid-file = /tmp/manager.pid
password-file = /etc/mysqlmanager.passwd
monitoring-interval = 2
port = 1999
bind-address = 192.168.0.231
log = /usr/local/mysql/bin/mysqlmanager.log
run-as-service = true

[mysqld1]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data1
port = 3306
socket = /tmp/mysql1.sock

[mysqld2]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data2
port = 3309
socket = /tmp/mysql2.sock

密碼檔案

/etc/mysqlmanager.passwd 存儲管理帳號(格式:user:hash)。

# 生成/修改密碼
mysqlmanager --add-user   # 互動式新增
mysqlmanager --edit-user  # 修改密碼
mysqlmanager --drop-user  # 刪除用戶
mysqlmanager --list-user  # 列出用戶

修改後必須重啟 IM 生效。

啟動與連線

# 前台啟動(調試用)
/usr/local/mysql/bin/mysqlmanager

# 客戶端連線管理介面
mysql -u user_all -p -S /tmp/manager.sock -P 1999
# 或遠端
mysql -u user_all -p -h 192.168.0.231 -P 1999

核心管理命令

命令說明範例
SHOW INSTANCES;列出所有受管實例狀態online / offline
START INSTANCE name;啟動指定實例START INSTANCE mysqld1;
STOP INSTANCE name;關閉指定實例STOP INSTANCE mysqld1;
SHOW INSTANCE STATUS name;顯示版本、相容性等詳細資訊SHOW INSTANCE STATUS mysqld2;
SHOW INSTANCE OPTIONS name;顯示實例啟動參數(basedir、datadir、buffer 等)SHOW INSTANCE OPTIONS mysqld1;

實戰日誌片段

mysql> SHOW INSTANCES;
+---------------+--------+
| instance_name | state  |
+---------------+--------+
| mysqld1       | online |
| mysqld2       | online |
+---------------+--------+

mysql> STOP INSTANCE mysqld1;
Query OK, 0 rows affected (0.30 sec)

mysql> SHOW INSTANCES;
+---------------+---------+
| instance_name | state   |
+---------------+---------+
| mysqld1       | offline |
| mysqld2       | online  |
+---------------+---------+

mysql> START INSTANCE mysqld1;
Query OK, 0 rows affected (0.00 sec)
Instance started

優缺點總結

優點

  • 單一入口統一管理多實例,適合共享主機/多租戶環境。
  • 自動守護:實例異常退出自動拉起。
  • 支援遠端管理、實例級配置查看。

缺點

  • IM 本身是單點故障,掛掉全掛;生產需配合 keepalived/systemd 監控 IM 自身。
  • 管理介面無法執行 SQL 業務命令(DDL/DML),僅限實例生命週期控制。
  • MySQL 5.1 標記棄用,5.7 移除;現代部署建議改用 systemd + mysqld_multi 或 Orchestrator / ProxySQL / Kubernetes Operator。

遷移建議

  1. 新架構採用 systemd 管理多實例:systemctl start mysqld@3306。
  2. 編排層面引入 Orchestrator 拓撲管理、ProxySQL 連線池與讀寫分離。
  3. 容器化場景用 Kubernetes MySQL Operator (Oracle/Presslabs) 實現自動故障轉移、備份、升級。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved