Navicat還原數據庫出現MySQL server has gone away的解決方法

原創 jingccj  2019-10-30 12:26:02  閱讀 99 次 評論 0 條

mysql數據庫出現MySQL server has gone away錯誤一般是sql語句太大導致了,下面們在使用Navicat中操作數據庫時提示MySQL server has gone away問題解決辦法。

今天備份了一下本站的數據,生成的sql文件比較大,當然,這個sql是包含了比較多的冗余數據。用Navicat直接導入的話,報錯MySQL server has gone away。

解決辦法

打開navicat的菜單中的tools,選擇server monitor,然后在左列選擇數據庫,右列則點選variable表單項,尋找max_allowed_packet,將其值改大。

改好之后,再次導入備份的sql文件,一切正常。

TIM截圖20191030122726.png

如果還是無法解決,下面我整理了一些mysql查詢中碰到MySQL server has gone away問題

找到你的mysql目錄下的my.ini配置文件,加入以下代碼:

max_allowed_packet=5000M

wait_timeout=288000

interactive_timeout = 288000

自己看情況更改數值,我直接改很大,最后記得重啟你的mysql服務

這樣的話就能很好的解決MySQL server has gone away問題了。max_allowed_packet是mysql允許最大的數據包,也就是你發送的請求; wait_timeout是等待的最長時間,這個值大家可以自定義,但如果時間太短的話,超時后就會現了MySQL server has gone away #2006錯誤。max_allowed_packet參數的作用是,用來控制其通信緩沖區的最大長度

如果沒有修改myql權限我們可以在PHP程序里面,如果php.ini修改起來不方便,可以以下代碼來嘗試解決。

ini_set('mysql.connect_timeout', 300); 
 
ini_set('default_socket_timeout', 300);
 
在ini_set后,可以用ini_get來驗證參數設置適合符合預期。


本文地址:http://www.joutvc.tw/post/2121.html
版權聲明:本文為原創文章,版權歸 jingccj 所有,歡迎分享本文,轉載請保留出處!

發表評論


表情

還沒有留言,還不快點搶沙發?