首页 > 数据库 > MySQL > 正文

mysql ERROR 1040: Too many connections

2024-07-24 12:37:35
字体:
来源:转载
供稿:网友

今天早起打开网站发现动态页面居然显示了ERROR 1040:Too many connections提示了,这不是连接过多的原因吧,我一个博客一天没几个IP呀,怎么会这样立即上vps查看.

错提示如下:

#/home/binbin.zhengbb/ssh/update_dns.sh

ERROR 1040 (08004): Too many connections

ERROR 1040 (08004): Too many connections

出现此错误的原因,一种是访问量确实很高,MySQL服务器顶不住,这个时候就要考虑增加从服务器分散读压力,另外一种情况是MySQL配置文件中max_connections值过小.

查询MySQL的最大连接数,代码如下:

  1. mysql> show variables like 'max_connections'
  2. +-----------------+-------+ 
  3. | Variable_name | Value | 
  4. +-----------------+-------+ 
  5. | max_connections | 100 | 
  6. +-----------------+-------+ 
  7. 1 row in set (0.00 sec) 

查询MySQL响应的最大连接数,代码如下:

  1. mysql> show global status like 'max_used_connections'
  2. +----------------------+-------+ 
  3. | Variable_name | Value | 
  4. +----------------------+-------+ 
  5. | Max_used_connections | 5 | 
  6. +----------------------+-------+ 
  7. 1 row in set (0.00 sec) 

说明:本地环境没什么参考价值,但是就上面的数据而言,MySQL过去所响应的最大连接数小于其允许的最大连接数,所以不会出现1040错误.

MySQL比较理想的最大连接数计算方式为:

max_used_connections / max_connections * 100% ≈ 85%

即最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接数上限设置的过高了.

方法一:直接修改mysql,代码如下:

  1. mysql> show variables; 
  2. | max_connections   | 100    
  3. mysql> set GLOBAL max_connections=1500; 

方法二:修改配置文件,代码如下:

  1. [Intranet root@inc-dp-149-47 /root] 
  2. #vi /etc/my.cnf 
  3.  
  4. [mysqld] 
  5. datadir=/var/lib/mysql 
  6. socket=/var/lib/mysql/mysql.sock 
  7. user=mysql 
  8. Default to using old password format for compatibility with mysql 3.x 
  9. # clients (those using the mysqlclient10 compatibility package). 
  10. old_passwords=1 
  11. log-bin=/var/lib/mysql/mysql_bin_log/log-bin 
  12. expire_logs_days=7 
  13. log-slow-queries=/var/log/mysqld_slow_query.log 
  14. set-variable=max_connections=1500 
  15.  
  16. [mysqld_safe] 
  17. log-error=/var/log/mysqld.log 
  18. #log-update=/var/log/mysqld_update.log 
  19. pid-file=/var/run/mysqld/mysqld.pid 

最后重启我们的mysql数据库服务器就可以了.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表