MySQL的连接参数---MySQL进不去error:'Too many connections'

来源:互联网 发布:反淘宝联盟2015 编辑:程序博客网 时间:2024/06/04 18:59

今天朋友公司的线上MySQL数据库进不去了,报错

mysqladmin:connect to server at 'localhost' failed

error:'Too many connections'

很显然是数据库的连接达到了上限,max_connections的设置

解决方案有三个:

1、停止连接(停应用)或者减少连接

2、重启数据库,在文件中修改max_connections的参数,量力修改,小心连接数上来的时候占用内存过多,导致OOM,MySQL进程被系统杀死。

3、使用gdb来修改(只能使用root的用户去执行)

gdb -p $(cat /data/mysql/mysqld.pid) -ex "set max_connections=100" -batch



下面是一些连接相关的参数介绍:

1、interactive_timeout


和上面的参数同时设置,控制空闲连接的超时时间,长时间连接上来不作操作就踢出
这里经常出现的一个问题:
做一个操作的时候时快时慢:比如由于打开一个界面要输身份证号的时候我去看一眼输入会超时
原理:界面还在,但是连接已经没了,尝试着去连接这个会话连接不上就等不然就重新建立连接(这个时间就体现为连接卡住了)
如果表锁严重的时候可以调短一些
2、skip_name_resolve = 1
关闭反向解析
跳过反向解析,客户端连接应用服务器的时候,会拿着ip去解析成主机名,在实际系统里面没有建立dnc,这时候解析不了就挂在那里了,所以要配置好/etc/hosts文件里把所有ip地址对应主机名都写上,
防止上来解析的时候解析不了发生等待时间。

3、max_connections 数据库最大连接数

4、wait_timeout

5、lock_wait_timeout

表锁的超时,默认时间很大,所以看不出来表锁超时

6、max_connect_errors阻止过多尝试失败的客户端以防止暴力破解密码的情况


7、max_user_connections 用户最大连接数

经常会因为某个程序起的连接太多或者存在太多的等待线程,导致连接满了。


原创粉丝点击