首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

單機多實例部署神器:mysqld_multi 配置與管理實戰

     編輯:MySQL 綜合教學

場景痛點

傳統做法:多次編譯、多目錄、多啟動腳本,維護極其繁瑣。mysqld_multi 官方工具可用單二進制、共享數據目錄模板,輕鬆管理 N 個實例。

部署步驟

  1. 安裝基礎實例並初始化
    啟動主實例,創建管理用戶 'multi_admin'@'localhost'。
  2. 複製數據目錄模板
    cp -r /var/lib/mysql /var/lib/mysql3307
    chown -R mysql:mysql /var/lib/mysql3307
  3. 編寫 /etc/my.cnf 多實例段
    
    [mysqld_multi]
    mysqld     = /usr/bin/mysqld_safe
    mysqladmin = /usr/bin/mysqladmin
    user       = multi_admin
    password   = strong_password
    
    [mysqld1]          # 默認 3306
    datadir    = /var/lib/mysql
    socket     = /var/run/mysql/mysql.sock
    port       = 3306
    
    [mysqld2]          # 新實例 3307
    datadir    = /var/lib/mysql3307
    socket     = /var/run/mysql/mysql3307.sock
    port       = 3307
    pid-file   = /var/lib/mysql3307/mysql3307.pid
    
  4. 授予管理用戶關閉權限
    GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'strong_password';
    每個實例啟動後必須執行此授權,否則無法 stop。
  5. 啟動/停止/狀態
    mysqld_multi --log=/var/log/mysqld_multi.log start 1,2
    mysqld_multi --log=/var/log/mysqld_multi.log stop 2
    mysqld_multi report

關鍵優勢

  • 單二進制,升級只需替換一份 mysqld。
  • 共享配置模板,差異化參數極少(port、socket、datadir、server-id)。
  • 統一啟停、日志、監控入口,運維成本大幅降低。

避坑提醒

  • mysqld_multi 要求 [mysqld_multi] 段的 user/password 在每個實例的 mysql.user 表中存在且為 localhost。
  • 實例間 server-id 必須唯一,防止複製衝突。
  • 系統 systemd 管理時建議生成獨立 mysql@3307.service 模板單元,而非直接用 mysqld_multi。

作者:sky-鵬

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