1.因为用到递归,检查循环有没有重复创建connection,检查没有而去每一步数据库的操作都做了close;在频繁的点击链接时就出现这个错误,考虑到
mysql连接数的问题。
2.在my.ini的[mysqld]下添加max_connections=500,不过在运行一段时间后还是会出同样的错误看来问题并不是出在连接数上,在mysql的官网上找到了
这个bug的解决方案,原来是由于windows的socket关闭时的 TIME_WAIT造成的,需要修改下注册表在
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
下添加子项
Value Name: MaxUserPort
Data Type: REG_DWORD
Value: 65534
Value Name: TcpTimedWaitDelay
Data Type: REG_DWORD
Value: 30


修改完重启电脑,测试没发现这个问题了。
本文介绍了解决MySQL连接因Windows系统socket关闭时产生的TIME_WAIT状态而导致的问题。通过调整max_connections参数并未能彻底解决问题,最终通过对注册表进行两项关键设置得以解决:一是将MaxUserPort设置为65534,二是将TcpTimedWaitDelay设置为30秒。
3457

被折叠的 条评论
为什么被折叠?



