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
cp -r /var/lib/mysql /var/lib/mysql2 chown -R mysql:mysql /var/lib/mysql2
mysqld_multi start 1,2 # 啟動兩實例 mysqld_multi stop 1,2 # 停止 mysqld_multi report 1,2 # 狀態檢查
mysql -P 3307 -u root -p # 指定埠號 mysql -u root -S /var/run/mysqld/mysqld2.sock # 指定 socket
依樣畫葫蘆新增 [mysqld3]、[mysqld4]...,注意:
datadir、socket、pid-file、port。innodb_buffer_pool_size 等)總和不超過物理記憶體 70-80%。ulimit -n 需相應調大。datadir 存取 → 需調整政策或設定 context。mysqld_multi 讀取 my.cnf 順序:/etc/my.cnf、/etc/mysql/my.cnf、~/.my.cnf,確認生效檔案。mysql.server 僅管理第一實例,多實例請用 mysqld_multi 或 systemd unit。