2012-03-07

解决Win2003频繁出现无法连接MySQL

0

服务器环境Win2003+IIS+MySQL5搭建的DedeCMS和Discuz,总是频繁出现无法连接MySQL数据库,刷新又正常了,错误如下:

MySQL Error
Message: Can not connect to MySQL server
SQL:
Error: Can't connect to MySQL server on 'localhost' (10061)
Errno.: 2003

有时出空白页,有时很慢,搜索了许多方法都没有解决,包括MySQL数据库优化,注册表中TcpTimedWaitDelay设置为30 ~ 60 之间,没有用,重启MySQL服务,也没有用,总是经常出现无法连接MySQL,刷新一下又好了。

一直以为是DedeCMS或Discuz引起的无法连接MySQL数据库,搜索网络中提供的很多方法都没有用,疏不知,这是微软补丁KB967723造成的MySQL频繁无法连接。

Win2003频繁出现无法连接MySQL的解决方法

微软官方解决方案:http://support.microsoft.com/kb/q196271

老方法:

卸载KB967723补丁:登录服务器,进入控制面板 — 添加和删除程序 — (勾选上方的“显示更新”)在里面可以看到更新的KB967723这个补丁,然后就想卸载普通软件一样卸载,卸载中会提示你,如果卸载可能导致程序运行出错,没关系,选择“是”,继续卸载。卸载完成后程序服务器,一切正常!

新方法:

启动注册表编辑器。(开始—运行—REGEDIT)
在的注册表中找到以下子项,然后单击 参数 :HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
在 编辑 菜单上单击 新建,然后添加下面的注册表项:
数值名称: MaxUserPort
值类型: DWORD
值数据: 65534 (注意是十进制)
有效范围: 5000-65534 (十进制)
默认值: 0×1388 (5000 十进制)
说明: 此参数将控制程序从系统请求任何可用的用户端口时使用的最大端口数。 通常,1024 的值和包含的 5000 之间分配临时的(短) 端口。
退出注册表编辑器,并重新启动计算机。