最近在騰訊雲服務器(1核4G內存)遇到一個怪事:
玩家回寫數據庫的時候偶爾會報錯:
#08S01Got a packet bigger than 'max_allowed_packet' bytes
Mysql 5.1 遇到的信息包過大問題 用客戶端導入數據的時候,遇到
錯誤代碼: 1153 - Got a packet bigger than 'max_allowed_packet' bytes 終止了數據導入。
當MySQL客戶端或mysqld服務器收到大於max_allowed_packet字節的信息包時,將發出“信息包過大”錯誤,並關閉連接。對於某些客戶端,如果通信信息包過大,在執行查詢期間,可能會遇到“丟失與MySQL服務器的連接”錯誤。
客戶端和服務器均有自己的max_allowed_packet變量,因此,如你打算處理大的信息包,必須增加客戶端和服務器上的該變量。一般情況下,服務器默認max-allowed-packet為1MB
我打印了一下我回寫的數據byte_size(Data),也就1918個字節,1k多,怎么會bigger??
show global variables like 'max_allowed_packet';
於是按照網上說的
set global max_allowed_packet = 2*1024*1024;
並且修改了/etc/my.cnf
max_allowed_packet=16M
systemctl restart mariadb.service #重啟MariaDB
然后就不會出現這問題,但是一段時間后又會偶爾出現,最近一直在查找這個問題的原因,懷疑是不是太頻繁操作數據庫的原因,待續。。。