解决MySQL错误Too many connections的方法

数据库 MySQL
当大量的connect之后,就会出现Too many connections的错误,mysql默认的连接为100个,而什么情况下会出现这种错误呢?

解决Mysql错误Too many connections的方法 

MySQL数据库 Too many connections

出现这种错误明显就是 mysql_connect 之后忘记 mysql_close;

当大量的connect之后,就会出现Too many connections的错误,mysql默认的连接为100个,而什么情况下会出现这种错误呢?

正常的mysql_connect 之后调用 mysql_close()关闭连接

但在连接错误时,会者mysql_real_query()出现错误退出时,可能忘记mysql_close();

所以在程序return 之前一定要判断是否close(),最稳妥的方法就是在写任何函数时都只有一个出口!

还有可以通过修改mysql配置文件来加大允许连接的数量!

有时你的服务器是经常出现这样的错误呢:

错误信息如下:

  1. Can not connect to MySQL server  
  2. Error: Too many connections  
  3. Errno.: 1040  
  4. Similar error report has beed dispatched to administrator before. 

从官方文档知道Linux上面编译安装的mysql默认的连接为100个

文档:http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html

mysql官方告诉我们需要修改max_connections的值,那么我们怎么去修改呢?有两种方法

1、修改配置文件文件

修改/etc/my.cnf这个文件,在[mysqld] 中新增max_connections=N,如果你没有这个文件请从编译源码中的support-files文件夹中复制你所需要的*.cnf文件为到 /etc/my.cnf。我使用的是my-medium.cnf,中型服务器配置。例如我的[mysqld]的内容如下:

  1. [mysqld]  
  2. port = 3306  
  3. socket = /tmp/mysql.sock  
  4. skip-locking  
  5. key_buffer = 160M  
  6. max_allowed_packet = 1M  
  7. table_cache = 64  
  8. sort_buffer_size = 512K  
  9. net_buffer_length = 8K  
  10. read_buffer_size = 256K  
  11. read_rnd_buffer_size = 512K  
  12. myisam_sort_buffer_size = 8M  
  13. max_connections=1000 

由于对mysql还不是很熟悉,所以很多参数没有修改。哈哈。。

2、非使用mysqld脚本自动启动的用户。

修改MYSQLHOME/bin/mysqldsafe文件例如:/usr/local/mysql/bin/mysqldsafe这个文件grep−n‘maxconnection′

MYSQLHOME/bin/mysqldsafe文件例如:/usr/local/mysql/bin/mysqldsafe这个文件grep−n‘maxconnection′MYSQL_HOME/bin/mysqld_safe

修改对应行号的max_connections参数值

3、服务器登录mysql : mysql -u root -p

百分之九十进不去,进不去的执行重启命令 :/etc/init.d/mysql restart(centos系统)

此时重启mysql就能连接mysql了,如果还有时间,可以继续下一步,治病要治本

打开配置文件 添加一下配置 vi /etc/my.cnf

  1. wait_timeout = 600  
  2. interactive_timeout = 600 

再次重启mysql即可

原理解答

mysql 默认100 连接数,超过则连不上,实际工作的连接数远远没有100,大部分在sleep

所以要么增大连接数,要么杀掉无用连接,推荐后者。 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2024-01-07 20:05:33

2023-12-25 14:47:14

2024-09-04 16:00:24

PostgreSQL数据库

2023-04-26 00:06:22

服务器死循环报错

2017-01-09 16:35:25

socket函数fd备用

2021-02-09 08:13:51

项目内存TCP

2011-05-16 09:54:22

mysql1067错误

2010-06-17 10:32:13

开机显示Grub

2010-03-29 17:46:39

Nginx asp

2010-10-19 10:25:29

SQL Server连

2012-08-15 14:01:18

2011-09-19 19:21:54

linux

2009-06-17 15:33:50

java heap s

2011-05-18 14:44:13

mysql1046错误

2011-08-30 13:48:50

phpmyadmin

2010-02-24 16:30:52

WCF常见错误

2010-10-13 17:22:12

MySQL查询乱码

2010-05-14 17:27:40

MySQL中文乱码

2010-05-26 17:09:02

IPv6路由广播

2010-01-15 10:31:19

Linux编译
点赞
收藏

51CTO技术栈公众号