MySQL的TIME_WAIT连接过多的解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的TIME_WAIT连接过多的解决方法相关的知识,希望对你有一定的参考价值。


今天上mysql服务器看了下并发,发现了以下情况

MySQL的TIME_WAIT连接过多,吓了我一跳,因为这个服务器我很少去管理,今天突然想上来看看,发现了这个问题。以下是我的解决方法


[[email protected] data]# ss -an | grep 3306 | wc -l
1402
[[email protected] data]#mysql -uroot -p


mysql> show variables like "time_timeout";

| wait_timeout               | 28800             |

终于发现问题了,这里的超时时间是28800秒技术分享

然后我就使用以下的步骤解决了。


1、在/etc/sysctl.conf中添加下以下内容

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30


然后使用sysctl -p命令将其生效


2、在/etc/my.cnf中添加以下内容

#在[mysqld]中添加

[mysqld]

#这个参数是修改上面查询到的28800秒,我修改为了30秒

wait_timeout = 30


3、重启服务器即可

当然了,这个方法很笨,如果是线上的服务器就不要用这个方法了。


如果不能重启服务的可以直接修改全局变量

mysql> set global wait_timeout=30;





本文出自 “小莫” 博客,请务必保留此出处http://xiaofengmo.blog.51cto.com/10116365/1752160

以上是关于MySQL的TIME_WAIT连接过多的解决方法的主要内容,如果未能解决你的问题,请参考以下文章

TCP连接状态详解及TIME_WAIT过多的解决方法

TCP连接状态详解及TIME_WAIT过多的解决方法

TCP连接状态详解及TIME_WAIT过多的解决方法

如何解决 linux socket TIME_WAIT 过多造成的问题(SYNACKFINMSLRST含义)

linux 下Time_wait过多问题解决

解决TIME_WAIT过多造成的问题