最近在使用MySQL數(shù)據(jù)庫時遇到了一個奇怪的問題:連接數(shù)據(jù)庫成功后,只要過了幾分鐘就自動斷開,需要重新連接。經(jīng)過調(diào)試發(fā)現(xiàn)是MySQL的超時機制導致的。
MySQL默認的超時時間是8小時,即使在使用期間有數(shù)據(jù)傳輸,也不會重置超時時間。如果超過了8小時,就會自動斷開連接。如果想更改超時時間,可以使用如下的命令:
SET GLOBAL wait_timeout=28800; //單位:秒,設置為8小時
或者在MySQL配置文件中(在Linux系統(tǒng)下通常位于/etc/mysql/my.cnf或/etc/my.cnf)添加如下代碼:
wait_timeout = 28800
這樣就能將超時時間設置為8小時。
除了超時時間過短導致連接問題外,還有可能是MySQL的最大連接數(shù)限制導致。可以使用如下的命令查看當前的最大連接數(shù):
SHOW VARIABLES LIKE 'max_connections';
如果發(fā)現(xiàn)值過小,可以使用如下的命令設置最大連接數(shù):
SET GLOBAL max_connections = 1000; //設置最大連接數(shù)為1000
或者在MySQL配置文件中添加如下代碼:
max_connections = 1000
這樣就能解決MySQL幾分鐘后就自動斷開連接的問題。
上一篇c 手寫 json 算法
下一篇python 影評分析