使用 mysqld_multi 管理多個 MySQL 實例,採用「每實例一個配置文件」模式,優勢在於配置隔離、維護清晰、遷移方便。本文為系列第二篇,重點記錄獨立配置文件的建立、初始化、啟停管理。
my.cnf 包含多 [mysqldN] 區段。/etc/my.cnf 僅含 [mysqld_multi],各實例配置放 /etc/my3306.cnf、/etc/my3307.cnf 等。/data/mysql/3306/{data,logs,tmp}
/data/mysql/3307/{data,logs,tmp}
chown -R mysql:mysql /data/mysql
mysqld --defaults-file=/etc/my3306.cnf --initialize-insecure --user=mysql
mysqld --defaults-file=/etc/my3307.cnf --initialize-insecure --user=mysql
[mysqld]
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
character-set-server=utf8mb4
innodb_buffer_pool_size=1G
...其他參數...
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user = multi_admin
password = xxx
[mysqld3306]
defaults-file = /etc/my3306.cnf
[mysqld3307]
defaults-file = /etc/my3307.cnf
mysqld_multi start 3306,3307
mysqld_multi stop 3306
mysqld_multi report
datadir 與 .cnf,極其方便。系列第一篇(單一配置文件模式)請參考《MySQL 多實例配置實戰(一)》。