【问题标题】:mssql_connect stops working after some timemssql_connect 在一段时间后停止工作
【发布时间】:2012-03-27 15:27:42
【问题描述】:

我有一个网站偶尔无法连接到数据库。 它开始时只是在这里和那里的几个页面请求出现问题,但过了一段时间它就停止了并且根本无法连接。这是我收到的错误消息:

警告:mssql_connect() [function.mssql-connect]:无法连接 到服务器:本地主机在 C:\wwwroot\x.se\root\classes\adodb5\drivers\adodb-mssql.inc.php 上 第 520 行

如果我重新启动 Apache,它会再次正常工作一段时间 - 所以它似乎不是 dbserver 的问题。我尝试更新 ntwdblib.dll 但没有帮助。

这是环境:

  • Windows Server 2003 R2 标准版 SP2
  • 启用 PHP 版本 5.2.9-2 线程安全
  • Apache 2.0.63 (Win32)
  • MS SQL Server 2005

除此之外,由于各种原因,我不能只关闭这个实时服务器几个小时并重新安装东西(好吧,我想如果一切都失败了,我必须这样做)。我可能会尝试更新 PHP 和/或 Apache,但我正在寻找侵入性较小的解决方案。

phpinfo() 输出:

  • mssql
  • 已启用 MSSQL 支持
  • 活动持久链接 1
  • 活动链接 1
  • 库版本 7.0
  • 指令本地值主值
  • mssql.allow_persistent 开启 开启
  • mssql.batchsize 0 0
  • mssql.compatability_mode 关 关
  • mssql.connect_timeout 5 5
  • mssql.datetimeconvert On On
  • mssql.max_links Unlimited Unlimited
  • mssql.max_persistent Unlimited Unlimited
  • mssql.max_procs Unlimited Unlimited
  • mssql.min_error_severity 10 10
  • mssql.min_message_severity 10 10
  • mssql.secure_connection 关 关
  • mssql.textlimit 服务器默认服务器默认
  • mssql.textsize 服务器默认服务器默认
  • mssql.timeout 60 60

将 ADODB 从 V5.06(2008 年 10 月 16 日)升级到 V5.15(2012 年 1 月 19 日)也没有帮助。

.. 将 PHP 堆栈从 v5.2.9-2(2009 年 2 月 26 日)升级到 5.2.17(2011-Mar-22 13:29:30)不起作用。

【问题讨论】:

  • 每次使用查询后都关闭连接吗?
  • 不,我认为 PHP 应该在处理完页面后自己执行此操作。也许我可以尝试关闭所有页面中包含的页脚文件中的任何打开的连接。
  • 您可以尝试安装 mtop 并告诉我们服务器在做什么吗?
  • 是否有与 mtop 等效的 MSSQL?我对MSSQL不太熟悉,估计应该有类似的吧。

标签: php sql-server apache


【解决方案1】:

我只是关闭了 php.ini 中的 mssql 持久连接,现在它似乎可以工作了。

【讨论】:

    【解决方案2】:

    您是否尝试过使用持久连接?如果您经常连接可能会有所帮助: http://php.net/manual/en/function.mssql-pconnect.php

    【讨论】:

    • 看起来它已经开启了。我正在用数据更新我的帖子。
    • 它会打开似乎很奇怪,但服务器仍然会在“mssql_connect()”而不是“mssql _p connect()”中报告警告
    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多