Mysql

mysql 在增加 innodb_buffer_pool_size 和 innodb_log_file_size 後不會啟動

  • November 28, 2020

我在這里關注此解決方案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 日誌文件。

引用自:https://dba.stackexchange.com/questions/18495