ERROR 1118 (42000) at line 1278: Row size too large (> 8126)

在安裝部署zabbix 時,將zabbix的sql文件導入mariadb時報錯

就是導入的數據行太長了,

折騰吧

 

百度老爺雖然不給力,但是經過不懈努力,還是讓我找到了解決方法。

在博客 https://www.ldr04.cn/56.html,

找到解決的辦法,不過我在找到這條之前改過很多參數。

在 my.conf 裏添加

[mysqld]
innodb_strict_mode = 0

結果就不報錯了,大佬對這個的解釋是

注: innodb_strict_mode設置影響CREATE TABLE,ALTER TABLE和CREATE INDEX語句的語法錯誤的處理。innodb_strict_mode還啓用了記錄大小檢查,因此INSERT或UPDATE永遠不會失敗,因爲記錄對於所選頁面大小而言太大。

 

然後我查了一下,這幾個操作的區別

1、CREATE INDEX必須提供索引名,對於ALTER TABLE,將會自動創建,如果你不提供;
2、CREATE INDEX一個語句一次只能建立一個索引,ALTER TABLE可以在一個語句建立多個
3、只有ALTER TABLE 才能創建主鍵,

 

爲了防止是多個參數作用纔不報錯,我把我的修改參數貼出來

max_allowed_packet      = 256M  #修改前是 16M
innodb_buffer_pool_size = 512M  #修改前 54
innodb_log_file_size = 30M
innodb_log_buffer_size  = 32M

#添加的
innodb_file_per_table   = 1  
innodb_large_prefix=1 
innodb_file_format = Barracuda
innodb_strict_mode = 0

 

然後重啓mariadb,就ok了。

關注我的微信公衆號,和大家一起交流學習

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章