被這個東西 折騰很久了 :
我的查詢代碼 如下:
$sql_r=Db::instance('ms')->select('tableNum,vStyle')->from('msr_info')->where("msrId='$search_mid'")->row();
經(jīng)常出現(xiàn)這個問題 而且 是連接出現(xiàn) 也就是說 只要一旦 出現(xiàn)了這個問題 后面再查詢 就還是 報這個錯誤。
我沒有寫過任何的腳本來Kill mysql 線程。
但是 我重啟gatewayWorker start.php 就好了。出現(xiàn)這個錯誤的時候 web server 也能正常查詢
那么應(yīng)該不是我的mysql 服務(wù)的問題吧 。
這個問題 我該怎么解決?
DbConnection類遇到mysql gone away會自動重連一次,如果重連失敗才會拋異常。
不清楚你這里為何第二次連數(shù)據(jù)庫會失敗。
你可以在onMessage回調(diào)后面加一句
Db::closeAll(); 試下。這樣每次處理請求關(guān)閉數(shù)據(jù)庫鏈接。
你意思是 每次在event 里onMessage 加Db::closeAll();嗎? 那么每次不需要數(shù)據(jù)的 都會close了。 i/o量很大的情況下 性能會很影響吧? 那么如果我放在每次需要 Db::instance('ms')->select('tableNum,vStyle')->from('msr_info')->where("msrId='$search_mid'")->row(); 等查詢操作前 做 Db::closeAll(); 再查詢的話 會不會好一些呢? 有沒有別的朋友 碰到我這種情況的? 數(shù)據(jù)庫操作 是剛需操作啊。。能否有解決方案。。謝謝