簡體   English   中英

更改innodb_log_file_size的問題

[英]Issue changing innodb_log_file_size

我過去沒有做太多的調整,所以這可能相對容易,但我遇到了問題。 這就是我做的:

  1. 停止MySQL
  2. 編輯my.cnf(更改innodb_log_file_size
  3. 刪除ib_logfile0 / 1
  4. 啟動MySQL

開始沒問題,但所有InnoDB表都有.frm文件無效錯誤,狀態顯示InnoDB引擎被禁用,所以我顯然回去,刪除更改,一切都恢復正常。

我能夠改變我嘗試過的所有其他變量,但我似乎無法找出為什么即使在刪除日志文件后InnoDB也無法啟動。 我錯過了什么嗎?

謝謝。

編輯:粘貼下面的日志 - 看起來它似乎仍然找到日志文件,即使它們不存在?

關掉:

090813 10:00:14  InnoDB: Starting shutdown...
090813 10:00:17  InnoDB: Shutdown completed; log sequence number 0 739268981
090813 10:00:17 [Note] /usr/sbin/mysqld: Shutdown complete

進行更改后啟動:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
090813 11:00:18 [Warning] 'user' entry 'root@XXXXX.com' ignored in --skip-name-resolve mode.
090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.0.81-community-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Edition (GPL)
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm'

它只是一個相同錯誤的垃圾郵件,直到我糾正它

當它重新創建日志文件后啟動它所以它必須在同一個地方尋找我。

首先,我必須指出,在InnoDB數據文件的任何變形之前,應該讀取13.2.5。 添加,刪除或調整InnoDB數據和日志文件的大小

你指出的步驟幾乎是正確的。 建議在此類更改之前進行備份。 讓我們看看你發生了什么:

錯誤消息

 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes InnoDB: than specified in the .cnf file 0 268435456 bytes! 

是由更改innodb_log_file_size的大小而不刪除舊文件引起的。 可能你忘了在更改后第一次運行mysqld時刪除de ib_logfile0/1 消息

 090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections. 

表明您已解決此問題(通過刪除ib_logfile )。 但是,在刪除它們時,您會產生另一個問題。 XXXX \\ User.frm的數據損壞或InnoDB Engine的某些問題。

要確保啟用InnoDB,請在mysql提示符上運行此命令:

show variables like "%inno%";

在結果列表中必須有“ have_innodb = YES ”。 有時,當InnoDB 無法啟動(值為NODISABLED )時,將顯示Incorrect information in file消息中的Incorrect information in file
- 如果這是問題,你已經改變了阻止InnoDB引擎正常啟動的其他東西(datadir的權限或tmpdir的權限,其他innodb變量( 你沒有顯示完整的日志。 )等)。 查看更改或放置.cnf文件(之前和之后)。
- 如果InnoDB引擎為YES則必須修復該表。 (如果是這種情況,請添加評論,我會在這里添加信息。我現在太懶了。)

錯誤中的第一行表明您尚未刪除ib_logfile0。 你能確認你正在重命名/刪除正確的嗎?

要檢查的事項:

  • 設備上是否有足夠的空間來創建該大小的日志文件? 此行為可能來自完整設備。
  • 是否使用錯誤的設置創建了日志文件?
  • 您的日志文件路徑不會顯示為絕對路徑。 只是為了咧嘴笑,看看你的驅動器上是否有任何其他位置包含ib_logfile0。 可能是一個愚蠢的錯誤。

您是否嘗試過使用SQL Client編輯innodb_log_file_size字段?

我個人喜歡SQuirreL

我懷疑你刪除了錯誤的日志文件。 環顧四周尋找其他ib_logfile *文件。 也許你正在使用innodb_log_group_home_dir?

如果是這樣,請確保從那里刪除了ib_logfiles而不是datadir。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM