環境:MySQL 5.6.14,多實例配置 /etc/my.cnf 包含 [mysqld3307] 區段,指定 innodb_data_file_path = ibdata1:1G:autoextend。
執行初始化:
mysql_install_db --datadir=/home/mysql_3307 --user=mysql --defaults-file=/etc/my.cnf
啟動實例報錯:
[ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size
768 pages (rounded down to MB) than specified in the .cnf file: initial 65536 pages...
MySQL 5.6 的 mysql_install_db 僅讀取 [mysqld] 區段,完全忽略 [mysqldNNN] 多實例區段。
Setting file ./ibdata1 size to 12 MB(預設值)。ibdata1 大小 12 MB,與配置的 1G 不符。[mysqld3307]),發現磁盤文件與配置不一致,拒絕啟動。[mysqld3307] 重命名為 [mysqld]。mysql_install_db --defaults-file=/etc/my.cnf ... 初始化。[mysqld3307]。# 步驟 1:修改配置
sed -i 's/\[mysqld3307\]/\[mysqld\]/' /etc/my.cnf
# 步驟 2:初始化
mysql_install_db --datadir=/home/mysql_3307 --user=mysql --defaults-file=/etc/my.cnf
# 步驟 3:恢復配置
sed -i 's/\[mysqld\]/\[mysqld3307\]/' /etc/my.cnf
mysqld --initialize --datadir=...,原生支持 --defaults-group-suffix=3307 讀取對應區段,無需改名。ibdata1,確保 datadir 分區剩餘空間充足,否則同樣報錯。datadir、socket、port、log-error、pid-file,避免相互干擾。# 檢查 ibdata1 實際大小
ls -lh /home/mysql_3307/ibdata1
# 對比配置值
grep innodb_data_file_path /etc/my.cnf