MySQL中鏈接超時自動斷開的解決方案

前言:

MySQL數據庫通常默認的鏈接超時時間爲3600s(1小時),可是在進行大規模的線程事務操做時,一個鏈接會一直等待執行,這時候若是數據庫的超時時間設置的太短,就可能會出現Mysql數據鏈接自動被釋放,影響後面對數據庫的操做。mysql

固然MySQL鏈接設置的大小,要根據需求場景進行設置,wait_timeout過大也有弊端,其體現就是MySQL裏大量的SLEEP進程沒法及時釋放,拖累系統性能,不過也不能把這個指設置的太小,不然你可 能會遭遇到「mysql has gone away」之類的問題。sql

因此須要根據本身項目業務場景,進行適當的設置超時時間。數據庫

首先介紹下如何查看mysql的超時時間方法

在mysql命令提示符下執行如下命令便可:服務器

SHOW GLOBAL VARIABLES LIKE '%timeout%'

其次鏈接超時wait_timeout設置方法以下:

方案1.在mysql命令提示符執行如下命令便可(臨時方法,重啓MySQL服務器會失效,恢復默認值)性能

SET GLOBAL wait_timeout=15000

 

方案2.修改mysql的配置文件(推薦方法)spa

  • Windows下,配置文件路徑爲MySQL安裝的根目錄中。my.ini
  • Linux系統下,配置文件爲路徑/etc/my.cnf
[mysqld]

wait_timeout=10000
interactive_timeout=10000

保存退出,重啓MySQL服務便可線程

相關文章
相關標籤/搜索