PHP程序经常提示无法连接数据库 刷新后又可以访问

作者: 坎肩儿 分类: 安全配置,故障排查 发布时间: 2014-06-17 08:33

最近在做的一个项目里面,属于企业内部的,有独立服务器,win2003系统,按照正常程序搭建好环境,php程序访问正常,在操作后台添加数据的时候频繁出现无法连接数据库的情况,刷新后正常,一会又出现。

本以为是mysql数据库设置有问题,百度之后找到相关文章,解决方法如下:

网上一共提供了两种方法:

第一种卸载KB967723补丁

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

第二种:修改注册表

本方法是微软给出的修改注册表修复该Bug的的方法,原因是默认最大的临时 TCP 端口的数是 5000 适用于一节中包含的产品中。 在这些产品中添加一个新参数。 要提高临时端口的上限,请按照下列步骤操作:

启动注册表编辑器。
在的注册表中找到以下子项,然后单击 参数 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

在 编辑 菜单上单击 新建 ,,,然后添加下面的注册表项:

数值名称: MaxUserPort 
值类型: DWORD
值数据: 65534
有效范围: 5000-65534 (十进制)
默认值: 0x1388 (5000 十进制)
说明: 此参数将控制程序从系统请求任何可用的用户端口时使用的最大端口数。 通常,1024 的值和包含的 5000 之间分配临时的 (短) 端口。

我当时的环境是VM下的虚拟机里面的系统,上面提到的第一种方法不能用,虚拟机下貌似看不到更新的补丁,采用的是第二种方法,已得到验证,顺利解决问题!

注册表附图如下: