mysql端口,解决mysql连接端口上大量长时间未释放的T...

首先请确保你的应用程序有正确合理的使用了mysql_close();
当在断开连接时,通过netstat -an|grep 3306查看,发现socket状态为TIME_WAIT的,
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 10.0.0.102:3306 10.0.0.102:5080 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5081 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5082 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5076 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5077 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5078 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5079 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5074 TIME_WAIT
tcp 0 0 10.0.0.102:3306 10.0.0.102:5075 TIME_WAIT
而且较长时间一直是的话,
那么就按以下方法解决:通过调整内核参数
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 = 60 修改系統默认的 TIMEOUT 时间
***************************************************************************
以下是个简单的shell脚本来进行查看和设置,复制在一个文件里,然后给文件755的权限即可。
echo ""
DATE=`date +%Y-%m-%d`
TIME=`date +%H:%M:%S`
SETSTR=[$TIME]---设置系统参数---
SEESTR=[$TIME]---查看系统参数---
if [ "$1" = "set" ]
then
echo $SETSTR
/sbin/sysctl -w net.ipv4.tcp_syncookies="1" #设置新值
/sbin/sysctl -w net.ipv4.tcp_tw_reuse="1"
/sbin/sysctl -w net.ipv4.tcp_tw_recycle="1"
/sbin/sysctl -w net.ipv4.tcp_fin_timeout="60"
else
echo $SEESTR
/sbin/sysctl -a | grep net.ipv4.tcp_syncookies
/sbin/sysctl -a | grep net.ipv4.tcp_tw_reuse
/sbin/sysctl -a | grep net.ipv4.tcp_tw_recycle
/sbin/sysctl -a | grep net.ipv4.tcp_fin_timeout
fi
echo "--> command exec :"$0 $1 ".........[OK]"
--- 2011、07、15 ---
Tags:  mysql改端口 mysql端口

延伸阅读

最新评论

发表评论