[MariaDB/MySQL] ERROR 1118 (42000): Row size too large (> 8126)

今天在匯入資料庫時出現錯誤,導致匯入中斷

ERROR 1118 (42000) at line 437: Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.

造成的主因是設定檔中啟用了 innodb_strict_mode

在 MariaDB 10.2.2,或是 MySQL 5.7.7 以上的版本預設會開啟,這裡使用的伺服器是 MariaDB 10.2.8,所以在匯入的 SQL 檔單中有單行超過 8126 個字元的話,在 innodb_strict_mode 開啟的情況下會觸發錯誤,並中斷執行。

一般情況下建議是開啟的,因為相較之下 run-time error 會更頭痛,不過這裡只是單純要匯入資料,所以暫時先關閉後再開啟。

編輯 /etc/mysql/my.cnf,並將 innodb_strict_mode 設為 0,重新啟動服務後即可。


References:

comments powered by Disqus