Home  >  Article  >  Database  >  MySQL遇到Too many connections的解决办法

MySQL遇到Too many connections的解决办法

WBOY
WBOYOriginal
2016-06-07 17:35:421041browse

由于线上mysql实例太多,因此也就经常遇到Too many connections的问题,这个问题也是最常见的问题,下面就结合自己的经验来说一下

由于线上mysql实例太多,因此也就经常遇到Too many connections的问题,这个问题也是最常见的问题,下面就结合自己的经验来说一下这种问题的解决办法。

在出现这种问题的时候业务已经出现问题了,这种情况下最主要的是先恢复业务,而且自己要最先获取show innodb status和show full processlist的信息以便一会分析原因。最简单的办法就是临时将连接数稍微调大,让自己能登陆上去,,一般这种情况下登陆的时候也会出现Too many connections的提示,那么该如何做呢?这时候可以在主上面写一个死循环不停的连接主mysql以保证自己能正常登录,简单语句如下:

while true;do mysql -uroot -ppassword -S /tmp/mysql_3306.sock;done

然后使用gdb工具来更改内存中max_connections的配置,使用方法为:先使用ps命令查找出mysql的进程ID,然后使用如下命令进行更改:

gdb -p 21862 -ex "set max_connections=1000" -batch

注意max_connections不要设置太大,如果设置太大可能会导致系统内存耗尽。

登陆之后就可以通过show full processlist看看到底发生了什么事情,一般的是有SQL堵住的了,kill掉对应的SQL即可。对于短时间上来大量请求的需要和开发一起分析定位问题。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn