<?
php
define
(
'
MAX_SLEEP_TIME
'
,
120
);
$hostname
=
"
localhost
"
;
$username
=
"
root
"
;
$password
=
"
password
"
;
$connect
=
mysql_connect
(
$hostname
,
$username
,
$password
);
$result
=
mysql_query
(
"
SHOW PROCESSLIST
"
,
$connect
);
while
(
$proc
=
mysql_fetch_assoc
(
$result
)) {
if
(
$proc
[
"
Command
"
]
==
"
Sleep
"
&&
$proc
[
"
Time
"
]
>
MAX_SLEEP_TIME) {
@
mysql_query
(
"
KILL
"
.
$proc
[
"
Id
"
]
,
$connect
);
}
}
mysql_close
(
$connect
);
?>
将它当中的 $password 改成你实际的数据库密码,死连接的时间也可以修改。然后加入计划任务就可以了。比如用 crontab -e 命令加入:
*/2 * * * * php /usr/local/sbin/kill-mysql-sleep-proc.php
本文介绍了一种通过PHP脚本自动清理MySQL中长时间处于睡眠状态的空闲连接的方法,并提供了具体的实现代码。用户可以根据需要调整参数,如设置密码和空闲时间阈值,并通过计划任务定期运行此脚本来保持数据库连接池的健康。
542

被折叠的 条评论
为什么被折叠?



