我们的服务器上运行着大量 PHP 脚本,用于执行各种操作。最近我注意到,在 PHPMyAdmin 中查看时,有大量与我们的 MySQL 服务器的连接处于停滞状态。
通常,当脚本中的查询完成时,我们很擅长关闭连接,但显然在某个地方我们错过了一个或多个连接。
我知道正在与哪个数据库建立连接,但这只能缩小范围。
TL/DR 我正在寻找一种简单的方法来识别哪个脚本在不应该维持连接的情况下维持连接。
答案1
在完整进程列表中查找这些连接的主机列:
show full processlist\G
获取其中一个连接的主机和端口。
然后 SSH 到源服务器,并搜索哪个进程建立了此连接:
netstat -ntp |grep :theport
在该行的末尾,您将获得脚本的 pid/进程名称。