1. 程式人生 > >mysql的max_allowed_packet屬性修改後無效-解決思路

mysql的max_allowed_packet屬性修改後無效-解決思路

伺服器最近總是出現 Packet for query is too large (1706 > 1024). You can change this value on the server by setting the max_allowed_packet’ variable. 異常。

根據網上資料,找到mysqld.cof將裡面設定為max_allowed_packet=10M;mysql啟動後通過show VARIABLES like ‘%max_allowed_packet%’;值是20971520;生效。

但是,過了一段時間後,依然提示上面的異常;檢視mysql配置依然是10M;

後來看了一篇部落格,他用command設定set global max_allowed_packet = 16M無效,但是通過set global max_allowed_packet = 21024

1024*10設定卻生效了。

於是就值修改為:max_allowed_packet=20971520,儲存重啟mysql ,OK了

結論:有些伺服器下的mysql由於某些原因可能無法將M轉為k。

另外,如果使用docker 容器的mysql ,並且把mysql容器的配置檔案目錄對映到宿主機本地目錄,也會報以上異常;

主要原因為:宿主機的本地目錄許可權不夠;

用命令:chmod * 777 -R ;修改宿主機目錄許可權後,此問題不在出現。