mysql 在增加 innodb_buffer_pool_size 和 innodb_log_file_size 後不會啟動
我在這里關注此解決方案https://stackoverflow.com/questions/3927690/howto-clean-a-mysql-innodb-storage-engine/4056261#comment14041132_4056261並嘗試將我
innodb_buffer_pool_size
的速度增加到 4G 和更高的 1G(也是 1024M)除了日誌文件大小之外,mysql 不會以這些值開頭。如果我把它放回 512M mysql 啟動就好了。我該如何解決這個問題?我的伺服器是 16GB 的,根據 Webmin sysinfo:
Real memory 15.62 GB total, 3.13 GB used
同時我也發現了錯誤日誌:
120529 10:29:32 來自 pid 文件 /var/run/mysqld/mysqld.pid 的 mysqld_safe mysqld 結束
120529 10:29:33 mysqld_safe 使用 /var/lib/mysql 中的數據庫啟動 mysqld 守護程序
120529 10:29:33
$$ Note $$外掛 ‘FEDERATED’ 已禁用。 120529 10:29:33 InnoDB:InnoDB 記憶體堆被禁用
120529 10:29:33 InnoDB:互斥鎖和 rw_locks 使用 GCC atomic builtins
120529 10:29:33 InnoDB:壓縮表使用 zlib 1.2.3
120529 10:29:33 InnoDB:使用 Linux 原生 AIO
120529 10:29:33 InnoDB:初始化緩衝池,大小 = 1.0G
120529 10:29:33 InnoDB:緩衝池初始化完成
InnoDB:錯誤:日誌文件 ./ib_logfile0 大小不同 0 134217728 字節
InnoDB:比 .cnf 文件中指定的 0 268435456 字節!
@RickJames和@drogart給出的兩個答案本質上是補救措施。(每個+1)。
從您提供的錯誤日誌中,最後兩行說:
InnoDB:錯誤:日誌文件 ./ib_logfile0 大小不同 0 134217728 字節
InnoDB:比 .cnf 文件中指定的 0 268435456 字節!`
那時,很明顯您將innodb_log_file_size設置為 256M (268435456),
my.cnf
而 InnoDB 事務日誌 (ib_logfile0
,ib_logfile1
) 分別為 128M (134217728)。回顧您問題中我的 StackOverflow 答案的連結,您必須執行以下操作:步驟 01) 將此添加到
my.cnf
:[mysqld] innodb_buffer_pool_size=4G innodb_log_file_size=1G
步驟 02) 在作業系統中執行這些命令
mysql -u... -p... -e"SET GLOBAL innodb_fast_shutdown = 1" service mysql stop rm -f /var/lib/mysql/ib_logfile* service mysql start
為了對正在發生的事情有信心,
tail -f
請針對錯誤日誌執行。您將看到消息告訴您何時創建每個 innodb 日誌文件。