mysql has gone away解決方案

案例:

  TP5

$user2 = db('user')->where('id',21)->find();
sleep(10);
$user = db('user')->where('id',20)->find();

    由於mysql wait_timeout,interactive_timeout參數設置的10s,程序sleep 10s後,由於框架的db連接都是單例的,所以第二個查詢語句使用的mysql連接和第一次是同一個,但是原先mysql連接等待超過了10s,被mysql強制關閉,導致第二次查詢會出現msyql has gone away;

解決方案:

1調大mysql wait_timeout,interactive_timeout參數;

2每次連接使用新的msyql連接,不用單例模式

$user2 = db('user',[],true)->where('id',21)->find();
sleep(10);
$user = db('user',[],true)->where('id',20)->find();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章