首頁>Club>
9
回覆列表
  • 1 # 使用者6069669798743

    展開全部

    Mysql mysql lost connection to server during query 問題解決方法

    緣由: 在查詢Mysql中的資料庫,或者修改比較大的表的時候就會出現這種情況;

    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

    如果不可以的話就修改F:\program\mysql5.0\my-huge.ini

    裡的max_allowed_packet=16M 把16改為500 /////////////我用這個方法解決的 2014-6-4 19:58 //////////

    個人理解就是把mysql配置所提供的最大允許記憶體改大了畢竟16M可能不夠

    我是根據此方法做的,試試

    ----------------------

    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

  • 中秋節和大豐收的關聯?
  • 黑犇科技的礦機怎麼樣?