本文用于记录对mysql使用过程中遇到问题的解决思路(持续更新)
too many connections
数据库突然连不上,提示连接数过多,可以先检查下连接状态。
show processlist;
问题原因是项目临时加了不少同事一起开发,并且连接vpn时未关闭服务导致有很多连接未释放。
可以使用kill直接删除某一连接。
kill 1024017;
但在连接数过多时需要一个个删会很麻烦,可以通过关联查询获取所有需要删除的连接再批量执行。
select concat('KILL ',id,';') from information_schema.processlist where db = 'uac_test';
将查询结果复制出来执行,如果行数过多可以复制到sql文件再使用navicat执行sql文件。
除释放无用连接外,还可以通过设置最大连接数的方式来解决这个问题。
首先查询下当前设置的最大连接数。
show VARIABLES like 'max_connections';
可以看到默认最大连接数是比较小的,可以设置个较大数。
SET GLOBAL max_connections = 500;