使用 PHP 连接到 SQL Server 时出现错误 08001


Error 08001 while connecting to SQL Server by using PHP

这是我的问题,我的连接句柄是这样的:

$dbSrvName = 'servername';
    $dbName = 'database';
    $dbUser = 'user';
    $dbPass = 'password';
    $dbInfo = array(
        'Database' => $dbName,
        'UID' => $dbUser,
        'PWD' => $dbPass            
    );
    $this->dbConn = sqlsrv_connect($dbSrvName, $dbInfo);
    if(!$this->dbConn)
    {
        die(print_r( sqlsrv_errors(), true), 1);
    }    

当我触发 sqlsrv_errors() 的输出时,我收到以下消息:

数组 ( [0] => 数组 ( [0] => 08001 [SQLSTATE] =>

08001 [1] => 26 [代码] => 26 [2] => [Microsoft][SQL Server 本机客户端 10.0]客户端 无法建立连接,因为在 登录前握手。常见原因包括客户端尝试 连接到不受支持的 SQL Server 版本,服务器太忙而无法 接受新连接或资源限制(内存或最大值 允许的连接)在服务器上。[消息] => [Microsoft][SQL 服务器本机客户端 10.0]客户端无法建立连接 因为在登录前握手期间遇到错误。 常见原因包括客户端尝试连接到不受支持的 SQL Server 版本,服务器太忙而无法接受新连接或 资源限制(内存或允许的最大连接数) 服务器。) [1] => 数组 ( [0] => 08001 [SQLSTATE] => 08001 [1] => 10054 [code] => 10054 [2] => [Microsoft][SQL Server Native Client 10.0]TCP 提供程序:远程强行关闭了现有连接 主机。[message] => [Microsoft][SQL Server Native Client 10.0]TCP 提供程序:远程强行关闭了现有连接 主机。) [2] => 数组 ( [0] => 08001 [SQLSTATE] => 08001 [1] => 26 [代码] => 26 [2] => [Microsoft][SQL Server 本机客户端 10.0]客户端 无法建立连接 [消息] => [Microsoft][SQL Server 本机客户端 10.0]客户端无法建立连接 ) [3] => 数组 ( [0] => 08001 [SQLSTATE] => 08001 [1] => 10054 [代码] => 10054 [2] => [Microsoft][SQL Server 本机客户端 10.0]客户端无法 由于登录前失败而建立连接 [消息] => [Microsoft][SQL Server Native Client 10.0]客户端无法建立 由于登录前失败而连接) ) [2014-12-31 08:35:25]

SQLSRV 使用: php_sqlsrv_53_ts_vc9.dll

所以恐怕SQL的版本和这个版本的sqlsrv不兼容。有什么想法吗?

提前感谢您,新年快乐!

我猜你正在尝试远程连接到sql服务器。您需要确保这在您的 sql 服务器配置中实际上是可能的。

然后,您需要确保您尝试连接的用户帐户具有适当的权限

然后还需要在服务器上打开防火墙...

以下是要检查的事项的简短列表。

无法远程连接

实际上,这是一个误会!我尝试连接的数据库是Oracle。所以 PHP 库是不兼容的。

无论如何谢谢...