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

mysqld_multi 單機多實例部署實戰:配置、啟動與連線完整步驟

     編輯:MySQL 資料庫相關知識

部署優勢

  • 充分利用多核 CPU 資源。
  • 邏輯隔離:不同業務獨立實例,故障不互傳。
  • 單機即可實現主從備份、讀寫分離測試。

實作範例:雙實例(3306 / 3307)

1. 修改 my.cnf

[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 = /var/lib/mysql2/log.log

2. 準備第二實例資料目錄

cp -r /var/lib/mysql /var/lib/mysql2
chown -R mysql:mysql /var/lib/mysql2

3. 啟動/停止控制

mysqld_multi start 1,2   # 啟動兩實例
mysqld_multi stop 1,2    # 停止
mysqld_multi report 1,2  # 狀態檢查

4. 客戶端連線

mysql -P 3307 -u root -p          # 指定埠號
mysql -u root -S /var/run/mysqld/mysqld2.sock  # 指定 socket

擴充至 N 實例

依樣畫葫蘆新增 [mysqld3]、[mysqld4]...,注意:

  • 每實例獨立 datadir、socket、pid-file、port。
  • 總記憶體設定(innodb_buffer_pool_size 等)總和不超過物理記憶體 70-80%。
  • 檔案描述符限制 ulimit -n 需相應調大。

常見坑點

  • SELinux/AppArmor 阻擋新 datadir 存取 → 需調整政策或設定 context。
  • mysqld_multi 讀取 my.cnf 順序:/etc/my.cnf、/etc/mysql/my.cnf、~/.my.cnf,確認生效檔案。
  • 啟動腳本 mysql.server 僅管理第一實例,多實例請用 mysqld_multi 或 systemd unit。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved