最近一段时间发现mysql耗费cpu资源比较多,今天上午登录系统平台发现了这个错误,输入密码后,提示:too many connections,仅仅从字面上理解,太多连接,想了下应该是连接的数量太多,mysql服务处理不过来,但是网站的访问量不大,内存够,带宽也够,就cpu有点高。
百度一下这个错误,发现是和 MYSQL 的max_connections 这的个参数的设置大小有关系。可以查看该参数的配置情况,在mysql命令行或者mysql客户端工具中查询到。
注意此时你的网页也不能打开,链接mysql服务也提示too many connections,在服务器上进入mysql的命令行登录也是这个提示,这时候怎么处理呢,第一可以等待多试几次登录mysql,等链接不那么多的时候就会链接上,这个是比较慢的办法;第二是重启mysql服务,这样链接会释放此时就可以登录进去mysql服务。
1、在Navicat的客户端语句执行查询:show PROCESSLIST;
此时会显示所有进程,会发现很多进程处于“Sleep”状态,表示处于闲置状态。
2、执行语句查询: show variables like ‘%max_connections%’;
会显示系统设置的最大链接数,一般默认的是151,显然不太够。
3、从以上两点可以知道,mysql的链接数需要扩大,处于闲置的链接需要自动关闭掉。
在mysql的配置文件中设置两个参数就行,放在mysqld节点下:
max_connections=1000 #最大连接数,不要太大一口气吃撑了 wait_timeout=300 #关闭连接前等待秒数 interactive_timeout=500 #关闭连接前等待秒数
4、修改配置后,重启mysql服务,观察资源指标恢复正常,问题也就到此解决。
以上就是问题的解决方案,小技能,希望你能get到哦。