mysql查看連接數(shù)和設(shè)置會話超時問題
在排查mysql資源占用的情況下
我們就需要查看是否是過多sleep進(jìn)程導(dǎo)致的資源占用情況
查看當(dāng)前打開的連接的數(shù)量
show status like '%Threads_connected%'

查看連接狀態(tài)
show full processlist;

- User: 連接的用戶
- Host: 連接的主機(jī)地址
- db:訪問的數(shù)據(jù)庫
- Command: 目前指令類型
- Sleep 休眠
- Query 查詢
- Time:占用時間
- State:狀態(tài)
- starting 正在進(jìn)行
- info:使用的sql語句
查看不在睡眠的線程數(shù)
show status like '%Threads_running%'

上面簡單的查看了一下mysql的會話連接
下面來設(shè)置一下會話超時時間
查看會話超時時間
show GLOBAL VARIABLES like '%timeout%'; #查看全局會話時間

wait_timeout 非交互連接超時時間,比如jdbc連接
interactive_timeout 交互連接超時時間,比如客戶端連接
//默認(rèn)超時時間是8小時
現(xiàn)在通過修改超時時間來處理掉sleep進(jìn)程
set GLOBAL interactive_timeout = 60; set GLOBAL wait_timeout = 60;

現(xiàn)在只是臨時設(shè)置,永久設(shè)置的話需要修改mysql配置文件
在[mysqld]下面添加兩條配置
echo ' interactive_timeout=60 wait_timeout=60 ' >> /etc/my.cnf

查看全局超時時間和會話超時時間:
show GLOBAL VARIABLES like '%timeout%'; #查看全局超時時間 show VARIABLES like '%timeout%'; #查看會話超時時間

真正起到作用的是會話超時時間
wait_timeout 會默認(rèn)繼承全局wait_timeout的值,但是修改全局的interactive_timeout 的值,會直接同步會話的 interactive_timeout 和 wait_timeout 的值
實驗一下,將全局 interactive_timeout 修改為 120(是直接修改mysql配置文件)

查看全局超時時間和會話超時時間

可以看出我修改了全局的interactive_timeout 配置為120 ,會話的interactive_timeout和wait_timeout 配置都已經(jīng)同步了
###現(xiàn)在在120秒后交互和非交互沒有任何操作,連接就會斷開
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SQL中distinct 和 row_number() over() 的區(qū)別及用法
這篇文章主要介紹了SQL中distinct 和 row_number() over() 的區(qū)別及用法的相關(guān)資料,需要的朋友可以參考下2017-03-03
bitronix 連接 MySQL 出現(xiàn)MySQLSyntaxErrorException 的解決方法
這篇文章主要介紹了bitronix 連接 MySQL 出現(xiàn)MySQLSyntaxErrorException 的解決方法的相關(guān)資料,需要的朋友可以參考下2017-04-04

