首頁 >資料庫 >mysql教程 >為什麼 MySQL 會拋出行大小太大錯誤 (1118) 以及如何修復它?

為什麼 MySQL 會拋出行大小太大錯誤 (1118) 以及如何修復它?

Linda Hamilton
Linda Hamilton原創
2025-01-04 07:53:35155瀏覽

Why Does MySQL Throw a Row Size Too Large Error (1118) and How Can I Fix It?

MySQL 行大小太大錯誤(代碼1118):全面解釋

嘗試建立包含大量列的表時,例如提供325 列的範例,MySQL 可能會拋出錯誤,指示行大小超出最大限制。在處理大型表時,此錯誤很常見,並且可能會非常令人沮喪。

問題中提到的故障排除步驟之一包括將 VARCHAR 資料列變更為 TEXT 或 BLOB。 TEXT和BLOB資料類型用於儲存大量數據,例如文字或二進位數據,與VARCHAR相比可以容納更多的數據。此外,在 MySQL 中引入 Barracuda 檔案格式的目的是提高效能和可擴展性,特別是對於大型表。

但是,即使在實施這些措施之後,問題仍然存在。要解決此問題,另一個解決方案是修改 MySQL 設定參數 innodb_strict_mode。

將 innodb_strict_mode 設為 0:

根據 MySQL 文檔,將 innodb_strict_mode 設為 0 會停用某些檢查並允許更寬鬆地處理資料驗證。這可以解決與行大小超出限制相關的錯誤。

如何修改 innodb_strict_mode:

  1. 開啟 MySQL 設定檔(my.ini 或 my.ini) .cnf)。
  2. 找到 [mysqld] 部分。
  3. 新增以下行:
innodb_strict_mode = 0
  1. 儲存設定檔並重新啟動 MySQL 服務。

一旦 innodb_strict_mode 設定為 0,行大小限制強制執行放鬆,允許建立表時不會出現先前的錯誤。

需要注意的是,停用嚴格模式可能會對資料完整性和準確性產生影響。因此,建議謹慎使用該方案,並考慮對資料庫功能的影響。

以上是為什麼 MySQL 會拋出行大小太大錯誤 (1118) 以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn