SQLSTATE[08004] [1040] Too many connections


思路

1.硬件上,是否客户太多,mysql查询排队排长龙,溢出。可以考虑做数据库的负载均衡。

2.软件上,是否因为mysql配置文件的max_connections=100的默认连接数太少?修改到1000,重启mysql看看效果。

3.软件上,检查mysql被什么查询语句给卡住了,是否有查询因为没有开启索引而很慢(慢查询),有就找出来,添加索引,优化查询语句,再优化数据表结构帮助查询。

4.硬件上,是否存在服务器存储空间不足?是的话,也会卡住mysql,清理下空间即可。(我的就是这原因,df -h检查到了空间已满) 


具体操作

... 太多,下次先 ...


慢查询

登陆mysql后,
show variables like 'version'; 
show variables like '%slow%';  
show global variables like '%timeout';  
show variables like '%long_query_time%'; 
set global wait_timeout=10;
show processlist;

看到一堆的sleep进程

https://www.baidu.com/s?wd=mysql%20show%20processlist%20sleep


延伸阅读

如何在ubuntu下启动/停止/重启MySQL

service mysql start
service mysql stop


mysql 线程等待时间,解决sleep进程过多的办法

http://blog.sina.com.cn/s/blog_78ecbe330101332k.html


MySQL的Sleep进程占用大量连接解决方法 

http://blog.csdn.net/ciedecem/article/details/12068705

MySQL 慢查询日志(Slow Query Log) 

http://blog.csdn.net/leshami/article/details/39829605








你可能感兴趣的:(Mysql)