我已經(jīng)多次遇到這種情況,通常發(fā)現(xiàn)答案是 max_allowed_pa??cket
。
將 /etc/my.cnf
(在 [mysqld]
下)中的值提高到 8 或 16M 通常可以修復(fù)該問題。 (MySql 5.7 中的預(yù)設(shè)值為 4194304
,即 4MB。)
[mysqld] max_allowed_packet=16M
注意:如果該行不存在,只需建立該行,它必須顯示為 [mysqld]
注意:這可以在伺服器運(yùn)行時(shí)進(jìn)行設(shè)置,但在 mysql 守護(hù)程序重新啟動(dòng)後它將丟失。使用SET GLOBAL max_allowed_pa??cket=104857600
(這將其設(shè)為100MB)
注意:在 Windows 上,您可能需要使用 ANSI 而不是 UTF-8 編碼來儲存 my.ini 或 my.cnf 檔案。
檢查連接是否存在並在需要時(shí)重新建立連接可能會(huì)更容易。
有關(guān)信息,請參閱 PHP:mysqli_ping。