Discuz! Database Error(2003) notconnect 问题解決

本文解决在使用Discuz进行项目开发时遇到的数据库连接错误问题,具体为Discuz!DatabaseError(2005/2003),通过修改注册表或卸载微软补丁解决此问题,并且针对CentOS系统,解决由SELinux导致的httpd进程无法连接数据库的问题,提供了解决方法和详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在進行基於Discuz 開發項目時,遭遇到這樣的問題:Discuz!Database Error(2005/2003/..) notconnect,这个是数据库连接错误。
錯誤的顯示頁面截圖

在網絡上找到的解決方案如下: ##微软更新补丁后造成的 这个补丁是:微软补丁KB967723
###修改注册表,建议值为 65533(十进制)
默认的临时 TCP 端口的最大数量是 5000″适用于”部分中包括的产品。已在这些产品中添加新参数。若要增加临时端口的最大数量,请执行以下步骤:

  • 启动注册表编辑器。
  • 在注册表中,找到以下子项,然后单击 $参数
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • 在编辑菜单中,单击新建,然后添加以下注册表项:
    值名称: MaxUserPort
    值类型: 双字节
    值数据: 65534
    有效范围: 5000-65534 (十进制)
    默认值: 0×1388 (5000 十进制)
    说明: 此参数控制程序请求任何可用的用户端口从系统时使用的最大端口号。通常情况下,暂时 (短期) 的端口被分配值 1024年和 5000 (含) 之间。之后的安全公告 MS08-037 发布,Windows Server 2003 的行为已更改,以更好地匹配的 Windows Server 2008 和 Windows Vista。
  • 退出注册表编辑器,然后重新启动计算机。
    注意其他 TCPTimedWaitDelay 注册表参数确定在多长时间关闭的端口一直等待,直到关闭的端口可以重复使用。
    ###当然还有另外一种办法 卸载这个补丁,在控制面板里卸载即可。不推荐这么做,更新补丁肯定是有原因的,卸载可能导致系统不稳定就得不偿失了。 修改完以后重启服务器即可。

##centOS情況下的錯誤

問題在於,我的服務器系統是centOS哈,不可能修改註冊表吧!
折騰一段時間後,發現是SELinux的問題。 此问题的原因是SELinux阻止httpd进程--httpd_can_network_connect_db 连接数据库--不管是哪种类型的数据库。
解決辦法: <pre>/usr/sbin/getsebool httpd_can_network_connect_db httpd_can_network_connect_db --> off /usr/sbin/setsebool httpd_can_network_connect_db on /usr/sbin/setsebool -P httpd_can_network_connect_db on

</pre>

詳見:Can't connect to MySQL server on 'ip' (13) 的解决方案 ,錯誤原因是相同的。

转载于:https://my.oschina.net/sunshinedabby/blog/170245

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值