MySQL 2006-MySQLserver has gone away
方式一(驗證無誤):
找到 mysql安裝目錄下的my.ini配置文件,加入以下代碼:
max_allowed_packet=2048M
wait_timeout=288000
interactive_timeout = 288000
三個參數注釋如下:
max_allowed_packet是mysql允許最大的數據包,也就是你發送的請求;
wait_timeout是等待的最長時間,這個值大家可以自定義,但如果時間太短的話,超時后就會現了MySQL server has gone away #2006錯誤。
max_allowed_packet參數的作用是,用來控制其通信緩沖區的最大長度
方式二(網上摘抄暫無驗證):
打開navicat的菜單中的tools,選擇server monitor,然后在左列選擇 數據庫,右列則點選variable表單項,尋找max_allowed_packet,將其值改大。
漢化版中:在菜單中,工具-->服務器監控-->在左側數據庫列表前打勾-->在右側變量中找到max_allowed_packet,改大這個值,如9999999999
mysql設置不區分大小寫:
原來Linux下的MySQL默認是區分表名大小寫的,通過如下設置,可以讓MySQL不區分表名大小寫:
1、用root登錄,修改 /etc/my.cnf;
2、在[mysqld]節點下,加入一行: lower_case_table_names=1
3、重啟MySQL即可;
其中 lower_case_table_names=1 參數缺省地在 Windows 中這個選項為 1 ,在 Unix 中為 0,因此在window中不會遇到的問題,一旦一直到linux就會出問題的原因(尤其在mysql對表起名時是無法用大寫字母的,而查詢用了大寫字母卻會出查不到的錯誤,真是弄的莫名其妙)
查看通信緩沖區的最大長度:
show global variables like 'max_allowed_packet';
默認最大是1M,可以修改通信緩沖區的最大長度,修改為16M:
set global max_allowed_packet=1024*1024*16;
再次查詢:
接下來重新導入,導入成功!
注:修改只對當前有效, 重啟了MySQL他就還是會恢復原來的大小。如果是想永久生效,可以修改配置文件,在my.ini(windows下)或者my.cnf(linux下)加入或修改配置:
max_allowed_packet = 16M
重啟MySQL服務...