昨天晚上離開實驗室時,用python掛著一隻程式
(使用AWS Rekognition做人臉辨識後 新增一筆ID到mysql資料庫中,欲做教室點名系統)
然後隔天 也就是今天跑去看點影
晚上來實驗室發現程式已跳錯
"MySQL server has gone away"
畫面卡在今天第一個進實驗室開燈的人的frame
點名紀錄除了昨天離開時辨識到的我的資料外,其餘一筆都沒有
(原本想看看今天有誰進實驗室的,結果連一筆資料都沒紀錄到就炸ㄌ QQ)
Mysql會發生這個問題,有兩種原因
一種是寫入的檔案太大 無法寫入
另一種是與Mysql之間的連線 Tme Out
我的情況是第二種,
解法是在mysql設定檔新增兩個變數:
wait_timeout = 2
interactive_timeout = 2
( interactive_timeout 是用在交互對談模式上 (也就是我現在的狀況)、另一個 wait_timeout 是用在JDBC (我沒有使用java來連接資料庫過,對這塊有點模糊))
後面那個為時間(秒),看要設多久
當設定檔沒有這個參數時,預設是 28800 秒 (八小時)的時間會中斷連線 timeout
由於我是用XAMPP來架設mysql,
mysql設定檔:my.ini 在 win10底下的位置是:C:\xampp\mysql\bin\my.ini
(網路上有人是設在my.cnf裡,可是我在XAMPP底下沒找到這個檔案)
要在 [ mysqld ] 這個欄位,在範疇內加入
[mysqld]
wait_timeout = 2
interactive_timeout = 2
(數字代表經過多久沒連接會斷開的秒數,這邊設兩秒)
設好之後 重啟mysql
果然兩秒就斷開連接了^^
之後修改一下、改成自己所需要的數值,
預期程式能夠跑整天~