Mysql的某个数据库连接变得很慢。
经过检查,发现是Mysql的Sleep连接数过多,导致资源争抢,所以查询连接变得很慢。
在命令行执行以下查询语句,检查数据库无效连接。
发现了100多个无效连接,经过测试是该原因导致的连接变慢。
SELECT * FROM information_schema.processlist WHERE USER='root'
AND command='Sleep'
and db = 'pro'
order by time desc;
查看sleep默认的超时时间
SHOW GLOBAL VARIABLES LIKE 'wait_timeout';
SHOW GLOBAL VARIABLES LIKE 'interactive_timeout';
设置超时时间编程30秒,注意:必须两个参数同时设置才会生效。
set global wait_timeout=30;
set global interactive_timeout=30;
这种修改方式在重启mysql服务后,会失效,所以最好还是把这两个属性配置到mysql配置文件中。
然后手动把sleep的进程给清楚掉,先执行下以下语句,会出现一个cmd单位
SELECT GROUP_CONCAT(CONCAT('kill ',Id) SEPARATOR';') AS cmd
FROM information_schema.processlist
WHERE USER='root'
AND command='Sleep'
AND db = 'pro';
把查出来的结果粘贴出来,全部执行一下:
再检查一下连接数,发现无了。
SELECT * FROM information_schema.processlist
WHERE USER='root'
AND command='Sleep'
AND db = 'pro'
order by time desc;
未经允许不得转载:
红吉他 »
MySQL »
mysql的数据库连接变慢