【发布时间】:2011-06-02 13:19:58
【问题描述】:
我不得不将我们为客户端编写的应用程序移动到新服务器,并且我使用 PHP mssql_connect 启动的远程连接已停止工作。我注意到 PHP 不是用 mssql 编译的,所以我要求服务器管理员安装它。我可以验证它现在是否已通过 PHP 信息安装,但我现在从 mssql_connect 收到一致的“无法连接到服务器”错误。
这是我正在运行的非常简单的 PHP 脚本:
$myServer = "myserver.com:5000";
$myUser = "myusername";
$myPass = "mypassword";
$dbhandle = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer. Error: " . mssql_get_last_message());
我已经确认凭据仍然正确,但无论出于何种原因,mssql_connect 似乎都没有做这件事。我想知道管理员在安装扩展程序和 FreeTDS 后是否忘记了一些事情。任何指针都非常感谢! :)
问题解决了!!!
毕竟它是 /usr/local/freetds/etc/freetds.conf 中指定的 FreeTDS 协议版本号,因此必须取消注释第 13 行。就是这样! :)
【问题讨论】:
-
是立即失败还是超时后失败?确切的错误信息?您可以通过一些 SQL 工具进行连接吗?
-
可能是防火墙/路由/dns 类型问题。您可以从您的 php 主机连接到该主机/端口(使用例如 telnet)吗?
-
我已经设置 FreeTDS 来记录错误,它报告“来自服务器的意外 EOF”...不确定这是“我的服务器”还是远程“SQL 服务器”。顺便说一句,远程服务器是 SQL Server 2000。
-
我发现了问题,请参阅已编辑的问题以获取解决方案,出于某种疯狂的原因,我还无法回答我自己的问题……显然,我的问题很明显。 :)
标签: php sql-server linux apache2 freetds