首页 > 数据库 > MySQL > 正文

mysql出现大量的TIME_WAIT解决办法

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

如果你的mysql出现大量的TIME_WAIT,最可能的原因是mysql.colse(),才导致大量的mysql TIME_WAIT,有了原因解决办法很简单.

1、找到有问题的程序加入  mysql.colse()即可解决了.

2、直接修改mysql配置,设置TIME_WAIT时间不超过5秒即可.

linux系统中修改方法,代码如下:

vi /etc/sysctl.conf

编辑文件,加入以下内容:

  1. net.ipv4.tcp_syncookies = 1 
  2.  
  3. net.ipv4.tcp_tw_reuse = 1 
  4.  
  5. net.ipv4.tcp_tw_recycle = 1 
  6.  
  7. net.ipv4.tcp_fin_timeout = 30 

然后执行 /sbin/sysctl -p 让参数生效,代码如下:

net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies,当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭.

net.ipv4.tcp_tw_reuse = 1 表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭.

net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭.

net.ipv4.tcp_fin_timeout 修改系统默认的 TIMEOUT 时间.

windows中的mysql修改 my.ini中加入如下代码:

wait_timeout = 5

即可,或直接在执行sql语句:

  1. mysql> set global wait_timeout=10; 
  2. --Vevb.com 
  3. mysql> show global variables like 'wait_timeout'
  4. +----------------------------+-------+ 
  5. | Variable_name              | Value | 
  6. +----------------------------+-------+ 
  7. | wait_timeout               | 10    | 
  8. +----------------------------+-------+

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