mysql 連線卡死的問題
一、發現問題
最近在做的事情使用 Node 的 mysql 模組來連線 mysql,跑了有一段時間了,最近搗鼓得比較少,突然收到反饋,應用登入不上了!!!
二、定位問題
查日誌,無果...
Debug 模式啟動,問題消失...
隔天登入,問題重現...
這裡需要檢討下了,全鏈路日誌缺失啊!!!
於是在問題重現的情況下,保持後臺不動,到前端 Debug,發現介面報了一個 sql 異常,這才找尋到蛛絲馬跡,定是資料庫這塊有問題了...
然而重啟即好,應該不是具體的語句出了岔子,考慮到一直只在用一個連線
const connection = mysql.createConnection(config); connection.connect();
從未釋放,不會是連線使用一段時間卡死了吧,隨便谷了一個哥,還真特麼的有這一回事哈。於是整個連線池,問題立解:
conn = mysql.createPool(config); conn.query()
再次檢討,想當年用 hibernate 連資料庫溜得飛起,連線池這麼基礎的概念,在用 node 之後,竟無視了...