mysql連線池爆滿,釋放程式長連線殭屍程式
程式啟動報錯提示連線池爆滿不可用的情況下,我們從資料庫入手檢視哪些程式長時間等待
進入mysql命令介面輸入:show processlist
下面我們查詢linux系統上mysql所在伺服器的位置which mysql,使用which命令前提是你的 cat /etc/profile你的系統環境變數檔案內配置了檢索的目錄,如果安裝目錄沒有配置在profile檔案內是查詢不到安裝目錄的,一般自行安裝會在/data/mysql目錄下,具體目錄要自行檢索
下面我們編寫清理mysql長連線的sleep狀態的程式 命名為cleanmysql.sh的shell指令碼檔案
指令碼執行的時候需要動態傳入3個引數,這些引數可以寫死也可以傳遞,sh cleanmysql.sh 引數1 引數2 引數3 【引數之間用空格隔開】
例如sh cleanmysql.sh 127.0.0.1 3306 root因為我們的shell指令碼中的hostip=$1 port=$2 user=$3是需要的伺服器地址、埠、使用者名稱
#!/bin/sh
MYSQLDIR=/data/mysql/binMYSQLTOOL=$MYSQLDIR/mysql
MYSQLUSER=root
MYSQLPASS=Ig#pThp%x
usage()
{
echo "Usage: $0 ip port db_user"
echo "Example: $0 1.1.1.1 3306 db_user"
exit
}
if [ $# -ne 3 ];then
usage
fi
hostip=$1
port=$2
user=$3
sleepid="SELECT ID FROM information_schema.PROCESSLIST t WHERE t.COMMAND='Sleep' and user='$3' and time >1000;"
echo $sleepid
$MYSQLTOOL -h$hostip -u$MYSQLUSER -p$MYSQLPASS -P$port -e "$sleepid" >sleepIDs
while read sID
do
echo $sID
$MYSQLTOOL -h$hostip -u$MYSQLUSER -p$MYSQLPASS -P$port -e "kill $sID"
done<sleepIDs
相關文章
- golang連線MySQL時候的連線池設定GolangMySql
- MySql 限制連線程式數MySql線程
- Java連線mysql的程式JavaMySql
- swoole連線池原理解釋
- 連線池
- Tomcat+Mysql連線池TomcatMySql
- 使用mysql的長連線MySql
- Http持久連線與HttpClient連線池HTTPclient
- 連線池和連線數詳解
- 長連線和短連線
- 長連線與短連線
- 殭屍程式
- Hyperf 如何快速釋放 DB 連線
- Go連線池Go
- HTTP連線池HTTP
- Swoole MySQL 連線池的實現MySql
- Python實現MySQL連線池PythonMySql
- mysql、redis 客戶端連線池MySqlRedis客戶端
- 在JBOSS中使用mysql連線池MySql
- Mysql關於長連線短連線優劣比較MySql
- java連線池解決連線中斷Java
- proxool連線池如何使用SSL方式連線?
- Socket程式設計-長連線與短連線,心跳(keep-alive)程式設計Keep-Alive
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- MySql資料庫連線池專題MySql資料庫
- mysql資料庫連線池配置教程MySql資料庫
- weblogic +mysql 連線池 中文問題??WebMySql
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- 長連線和短連線的使用
- http的長連線和短連線HTTP
- ElasticSearch連線池建立Elasticsearch
- 自定義連線池
- golang tcp連線池GolangTCP
- Oracle 連線池配置Oracle
- oracle occi 連線池Oracle
- Resin 配置連線池
- [尋]連線池例子
- proxool連線池 配置