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

單機多實例:使用 mysqld_multi 輕鬆運行多個 MySQL 服務

     編輯:MySQL 資料庫相關知識

為什麼要在單機運行多個 MySQL?

  • 資源極致利用:多核 CPU、大記憶體伺服器跑單實例往往無法榨乾效能。
  • 邏輯隔離:不同業務(如交易、報表、測試)獨立實例,互不干擾,故障域縮小。
  • 低成本主從:單機即可構建主從複寫架構,方便開發測試備份策略。

實戰:雙實例部署 (Port 3306 / 3307)

1. 修改配置文件 /etc/my.cnf

[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = root
password   = your_root_password

[mysqld1]                  # 原有實例改名
user            = mysql
pid-file        = /var/run/mysqld/mysqld1.pid
socket          = /var/run/mysqld/mysqld1.sock
port            = 3306
datadir         = /var/lib/mysql
bind-address    = 127.0.0.1

[mysqld2]                  # 新增第二實例
user            = mysql
pid-file        = /var/run/mysqld/mysqld2.pid
socket          = /var/run/mysqld/mysqld2.sock
port            = 3307
datadir         = /var/lib/mysql2
bind-address    = 127.0.0.1
log-error       = /var/lib/mysql2/error.log

2. 準備第二實例數據目錄

mkdir -p /var/lib/mysql2
chown -R mysql:mysql /var/lib/mysql2
# 若需複製現有數據作為種子:
# cp -R /var/lib/mysql/* /var/lib/mysql2/
# chown -R mysql:mysql /var/lib/mysql2

若為全新實例,需執行 mysql_install_db --datadir=/var/lib/mysql2 --user=mysql 初始化系統表。

3. 使用 mysqld_multi 管理

# 啟動雙實例
mysqld_multi start 1,2

# 查看狀態
mysqld_multi report

# 停止指定實例
mysqld_multi stop 2

4. 客戶端連線驗證

# 連接實例 1 (預設 socket)
mysql -u root -p -S /var/run/mysqld/mysqld1.sock

# 連接實例 2 (指定 port 或 socket)
mysql -u root -p -P 3307 -h 127.0.0.1
# 或
mysql -u root -p -S /var/run/mysqld/mysqld2.sock

擴展與維護建議

  • 開機自啟:將 mysqld_multi start 1,2 加入 /etc/rc.local 或 systemd service。
  • 監控分離:Prometheus mysqld_exporter 需分別指定 --collect.global_status --collect.global_variables --collect.slave_status --config.my-cnf=/etc/my.cnf 並用 --web.listen-address 区分端口。
  • 備份策略:mysqldump --socket=/var/run/mysqld/mysqld2.sock --all-databases 針對性備份。

總結

mysqld_multi 是官方內建的多實例管理利器,配合清晰的 [mysqldN] 配置段,讓單機多實例部署變得標準化、可維護。無論是開發測試、業務隔離還是低成本高可用演練,皆是得心應手的選擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved