展開(kāi)全部
Mysql mysql lost connection to server during query 問(wèn)題解決方法
緣由: 在查詢Mysql中的數(shù)據(jù)庫(kù),或者修改比較大的表的時(shí)候就會(huì)出現(xiàn)這種情況;
google之:
方案1.在mysql配置文件[myslqd]下面添加一行設(shè)置skip-name-resolve.需要重啟mysql服務(wù).
方案2.在hosts文件內(nèi)添加: ip與主機(jī)名的映射關(guān)系,如: 127.0.0.1 localhost. 這種方式不用重啟mysql服務(wù).
---------------------------
三個(gè)層面上解決這個(gè)問(wèn)題:
1. 代碼層面,你需要在自己的PHP數(shù)據(jù)庫(kù)連接處增加大致如下代碼。
if( in_array(mysql_errno(), array(2006, 2013))){
mysql_close();
mysql_connect(...);
mysql_query(...);
}
也就是說(shuō)遇到2006,2013錯(cuò)誤就重新連接一下MySQL。
2. MySQL層面,需要配置一些參數(shù) my.cnf (但是這里是linux下,我的windows配置怎么辦?)
wait_timeout = x 超時(shí)時(shí)間 如600秒
max_allowed_packet = y 最大允許數(shù)據(jù)量
適當(dāng)增加x,y的值。
3. 一般出現(xiàn)這種情況不是所有例句而是單個(gè)表,請(qǐng)你先修復(fù)表一般都能解決這類問(wèn)題。
----------------------
MySQL Error 2013: Lost connection to MySQL server during query
錯(cuò)誤代碼: 1153 - Got a packet bigger than 'max_allowed_packet' bytes
解決方法:
修改mysql.ini(網(wǎng)上都說(shuō)是這個(gè)文件,找了N久終于知道在哪里了,我的目錄是在 D:\MySQL_Data\MySQL Server 5.5 在MySQL_Data文件夾下)文件添加如下代碼即可
max_allowed_packet=500M
如果不可以的話就修改F:\program\mysql5.0\my-huge.ini
里的max_allowed_packet=16M 把16改為500 /////////////我用這個(gè)方法解決的 2014-6-4 19:58 //////////
個(gè)人理解就是把mysql配置所提供的最大允許內(nèi)存改大了畢竟16M可能不夠
我是根據(jù)此方法做的,試試
----------------------
4. 可以直接在mysql中設(shè)置:
#show variables like '%timeout%';
#show variables like 'max_allowed_packet'
set global wait_timeout=60000;
#set global max_allowed_packet = 2*1024*1024