yii2 console MySQL server has gone away

來源:互聯網
上載者:User
關鍵字 php yii2 console mysql
一.問題:
現在有1個使用yii2的console執行的php指令碼,該指令碼一直在後台執行.
追蹤輸出日誌發現報:

2006 MySQL server has gone away

二.主要代碼如下:

try{Yii::$app->db->open();    if (Yii::$app->db->getIsActive()) {       // 做insert操作    }}catach(\yii\db\Exception $e){   var_dump($e);  // 重新串連 Yii::$app->db->close(); Yii::$app->db->open();}

三.情境:

這個php指令碼一直在後台執行,當有資料過來時,執行insert操作,無資料過來不執行insert操作。可能昨天18:00來條資料,然後insert成功,然後到第二天上午10:00才來另一條資料;也可能間隔會很小;

四.分析:
我的insert操作只是插入一個int型欄位和一個時間戳記,所以問題不會處在這個insert執行時間過長上。
由於間隔時間有可能太長,超過了mysql的wait_timeout,導致出現這個:

MySQL server has gone away 

五.yii2怎麼解決?
1.本人沒有修改mysql.ini的timeout參數許可權,所以這種解決辦法不可行
2.解決思路也比較簡單:在每次Insert之前判斷db connection是否active,否則重新串連,那My Code為什麼不能解決這個問題?該怎樣寫?注意用yii2類解決

  1. github上有相關討論,但是沒有說一個標準的解決辦法.

回複內容:

一.問題:
現在有1個使用yii2的console執行的php指令碼,該指令碼一直在後台執行.
追蹤輸出日誌發現報:

2006 MySQL server has gone away

二.主要代碼如下:

try{Yii::$app->db->open();    if (Yii::$app->db->getIsActive()) {       // 做insert操作    }}catach(\yii\db\Exception $e){   var_dump($e);  // 重新串連 Yii::$app->db->close(); Yii::$app->db->open();}

三.情境:

這個php指令碼一直在後台執行,當有資料過來時,執行insert操作,無資料過來不執行insert操作。可能昨天18:00來條資料,然後insert成功,然後到第二天上午10:00才來另一條資料;也可能間隔會很小;

四.分析:
我的insert操作只是插入一個int型欄位和一個時間戳記,所以問題不會處在這個insert執行時間過長上。
由於間隔時間有可能太長,超過了mysql的wait_timeout,導致出現這個:

MySQL server has gone away 

五.yii2怎麼解決?
1.本人沒有修改mysql.ini的timeout參數許可權,所以這種解決辦法不可行
2.解決思路也比較簡單:在每次Insert之前判斷db connection是否active,否則重新串連,那My Code為什麼不能解決這個問題?該怎樣寫?注意用yii2類解決

  1. github上有相關討論,但是沒有說一個標準的解決辦法.

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.