php 5.4 mssql_connect突然停止工作


php 5.4 mssql_connect suddenly stopped working

环境:

  • Apache 2.2.9
  • PHP 5.4.37
  • 自由tds 0.91
  • SQL Server 2008

在昨晚的微软更新之后,我的mssql_connect停止了工作。

tsql -LH x.x.x.x仍然正确显示服务器和端口

tsql -H x.x.x.x -U user连接精细

我在apache日志文件或freetds日志中一无所获

这是正在失败的代码段(关键信息已更改)

error_reporting(E_ALL); ini_set('display_errors',1);
$con = mssql_connect('server', 'user', 'pass');
var_dump($con);
if (!$con) {
    if ( function_exists('error_get_last') ) {
        var_dump(error_get_last());
    }
    die('Could not connect to the server!!'.mssql_get_last_message());
}

结果是:

警告:mssql_connect():无法连接到/home/中的服务器/第25行的public_html/states/index.php
bool(false)
array(4){["type"]=>int(2)
["message"]=>string(55)"mssql_connect():无法连接到服务器:server"
"file"]=>字符串(63)"/home/…/public_html/states/index.php"
["line"]=>int(25)}无法连接到该服务器!!

请帮忙!

我无法发表评论来问这个问题,但以下是我的想法。

  1. 显然,它没有连接到命令行之外的服务器,所以您需要仔细检查它的配置(检查服务器端口,指定端口等)

  2. 这是从Win还是Unix类型的操作系统运行的?

它是Linux。我暂时找了一份工作。问题似乎出现在Windows端,尽管tsql-LH命令显示了IP和端口,但它实际上并没有回答端口上的查询。您可以通过TCP连接到服务器,仅此而已。

因为SQL服务器是多宿主的,所以我添加了一个到web应用程序服务器的辅助连接,该服务器通过主IP连接到它。

稍后我将讨论IP绑定和服务问题。或者只是将其全部转换为mariaDB或Postgres。