Mysql:Warning: mysql_connect(): Too many connections in的问题解决

2014-05-04 11:01:09  雅事达网络 我有话说(184人参与)

服务器经常会出现mysql宕机网站无法访问的情况,错误提示如下:

Warning: mysql_connect(): Too many connections in...

这是由于mysql并发链接数过大引起的,连接数有可能是正常访问量过大,也有可能是恶意访问造成,也有可能是搜索引擎抓取时造成。

解决方法:

1、缓存数据查询结果,减少数据库查询次数;

2、php.ini中mysql.connect_timeout设置过大,一般mysql.connect_timeout=20基本差不多,过大会造成mysql同时链接数过大;

3、修改 /etc/my.cnf 文件,改这个参数:max_connections = 512,这个参数是最大连接数,默认值只有 100,修改后重启mysql生效;

如下:

mysql> show variables like ‘max_connections‘;

+———————–+——-+

| Variable_name | Value |

+———————–+——-+

| max_connections | 256  |

+———————–+——-+

mysql> show status like ‘max%connections‘;

+———————–+——-+

| Variable_name       | Value |

+—————————-+——-+

| max_used_connections | 256|

+—————————-+——-+

max_used_connections / max_connections * 100% (理想值≈ 85%) 

如果max_used_connections跟max_connections相同 那么就是max_connections设置过低或者超过服务器负载上限了,低于10%则设置过大。

参见《Mysql优化配置》http://www.cnblogs.com/Bozh/archive/2013/01/22/2871545.html

4、多用 show processlist 检查mysql的进程情况,优化 sql 语句;

5、对恶意访问做检测和屏蔽。

 

分享到:

已有37条评论,共184人参与

还没有评论
最新评论刷新
建海666
这里是博客评论区,请登录
32分钟前
果果明赫
这里是博客评论区,请登录
60分钟前