
寫了一個procedure,然后運行,資料量比較大,每次都運轉到600s時彈出這個提醒,
請問,怎么延長它運行的時間,謝謝!
新手小白)
uj5u.com熱心網友回復:
試試這個google之:
方案1.在mysql組態檔[myslqd]下面添加一行設定skip-name-resolve.需要重啟mysql服務.
方案2.在hosts檔案內添加: ip與主機名的映射關系,如: 127.0.0.1 localhost. 這種方式不用重啟mysql服務.
---------------------------
三個層面上解決這個問題:
1. 代碼層面,你需要在自己的PHP資料庫連接處增加大致如下代碼。
if( in_array(mysql_errno(), array(2006, 2013))){
mysql_close();
mysql_connect(...);
mysql_query(...);
}
也就是說遇到2006,2013錯誤就重新連接一下MySQL。
2. MySQL層面,需要配置一些引數 my.cnf (但是這里是linux下,我的windows配置怎么辦?)
wait_timeout = x 超時時間 如600秒
max_allowed_packet = y 最大允許資料量
適當增加x,y的值。
3. 一般出現這種情況不是所有例句而是單個表,請你先修復表一般都能解決這類問題。
----------------------
MySQL Error 2013: Lost connection to MySQL server during query
錯誤代碼: 1153 - Got a packet bigger than 'max_allowed_packet' bytes
解決方法:
修改mysql.ini(網上都說是這個檔案,找了N久終于知道在哪里了,我的目錄是在 D:\MySQL_Data\MySQL Server 5.5 在MySQL_Data檔案夾下)檔案添加如下代碼即可
max_allowed_packet=500M
如果不可以的話就修改D:\MySQL\MySQL Server 5.5\my-huge.ini
里的max_allowed_packet=16M 把16改為500
我是根據此方法做的,試試
----------------------
4. 可以直接在mysql中設定:
#show variables like '%timeout%';
#show variables like 'max_allowed_packet'
set global wait_timeout=60000;
#set global max_allowed_packet = 2*1024*1024
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/119607.html
