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

MySQL 多實例配置實戰(一):單一配置文件模式

     編輯:MySQL 綜合教學

MySQL 多實例配置實戰(一):單一配置文件模式

在一台伺服器上運行多個 MySQL 實例,透過 mysqld_multi 統一啟停監控。本文採用「單一 my.cnf 包含多 [mysqldN] 區段」模式,適合實例參數高度一致、追求集中維護的場景。

核心步驟

  1. 環境規劃:確定 base directory、各實例 port (3306/3307...)、socket、datadir、server-id。
  2. 建立數據目錄並初始化:
    mkdir -p /data/mysql/{3306,3307}/{data,logs,tmp}
    chown -R mysql:mysql /data/mysql
    mysqld --datadir=/data/mysql/3306/data --initialize-insecure --user=mysql
    mysqld --datadir=/data/mysql/3307/data --initialize-insecure --user=mysql
  3. 編寫統一配置 /etc/my.cnf:
    [mysqld_multi]
    mysqld     = /usr/local/mysql/bin/mysqld_safe
    mysqladmin = /usr/local/mysql/bin/mysqladmin
    user       = multi_admin
    password   = xxx
    
    [mysqld3306]
    port=3306
    socket=/data/mysql/3306/tmp/mysql.sock
    datadir=/data/mysql/3306/data
    pid-file=/data/mysql/3306/logs/mysqld.pid
    log-error=/data/mysql/3306/logs/error.log
    server-id=3306
    
    [mysqld3307]
    port=3307
    socket=/data/mysql/3307/tmp/mysql.sock
    datadir=/data/mysql/3307/data
    pid-file=/data/mysql/3307/logs/mysqld.pid
    log-error=/data/mysql/3307/logs/error.log
    server-id=3307
    
    # 通用參數可放在 [mysqld] 或各區段重複
    [mysqld]
    character-set-server=utf8mb4
    innodb_buffer_pool_size=1G
    ...
  4. 啟停與驗證:
    mysqld_multi start 3306,3307
    mysql -u root -p -S /data/mysql/3306/tmp/mysql.sock -e "SELECT @@port;"
    mysqld_multi stop 3306
    mysqld_multi report
  5. 日誌查看:各實例 log-error 指向獨立文件,故障定位互不干擾。
  6. 配置開機自啟:編寫 Systemd service 或 /etc/rc.local 呼叫 mysqld_multi start。

模式對比

維度單一配置文件獨立配置文件
維護便利性集中修改,但誤改影響面大隔離修改,遷移複製極簡單
參數差異化需在各區段重複天然隔離,互不干擾
適合場景實例同質化高、統一規格業務異構、參數差異大

系列第二篇(獨立配置文件模式)請參考《MySQL 多實例配置實戰(二)》。

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