Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/PDO错误:SQLSTATE[HY000]无法连接:自适应服务器不可用或不存在(严重性9)_Php_Sql Server_Pdo_Freetds - Fatal编程技术网

PHP/PDO错误:SQLSTATE[HY000]无法连接:自适应服务器不可用或不存在(严重性9)

PHP/PDO错误:SQLSTATE[HY000]无法连接:自适应服务器不可用或不存在(严重性9),php,sql-server,pdo,freetds,Php,Sql Server,Pdo,Freetds,我正在CentOS 6上运行PHP5.5,试图通过PDO连接到MS SQL Server数据库。我已经搜索了大约20个关于同一个错误消息的不同答案,并在这里一一尝试。当我尝试从PDO连接时,出现以下错误: SQLSTATE[HY000]无法连接:自适应服务器不可用或不存在(严重性9) 我可以通过命令行上的FreeTDS进行连接,完全没有问题: TDSVER=7.0tsql-h192.168.5.57-p1433-U testuser 我尝试在freetds.conf中设置tds version=

我正在CentOS 6上运行PHP5.5,试图通过PDO连接到MS SQL Server数据库。我已经搜索了大约20个关于同一个错误消息的不同答案,并在这里一一尝试。当我尝试从PDO连接时,出现以下错误:

SQLSTATE[HY000]无法连接:自适应服务器不可用或不存在(严重性9)

我可以通过命令行上的FreeTDS进行连接,完全没有问题

TDSVER=7.0tsql-h192.168.5.57-p1433-U testuser

我尝试在
freetds.conf
中设置
tds version=7.0
,但仍然得到相同的错误

我尝试连接到不同的MS SQL服务器,每次都得到相同的结果。我在Rackspace云服务器上尝试了相同的代码,没有任何问题。所以PDO/PHP和FreeTDS之间的某些东西似乎说得不对,但我不知道如何找到它

try {
  $hostname = '192.168.5.57:1433';
  $dbname = 'Test';
  $username = 'testuser';
  $password = 'thisismypassword';
  $db = new PDO("dblib:host=$hostname;dbname=$dbname","$username","$password");
} catch (PDOException $e) {
  echo 'Failed to get DB handle: ' . $e->getMessage();
}

尝试从
$hostname
中删除端口并将其添加到freetds.conf

[192.168.5.57]
    host = 192.168.5.57
    port = 1433

我们在尝试连接到未经授权的数据库时遇到此错误。一旦我们请求加入白名单(不确定是在防火墙还是数据库级别),我们就可以正常连接了


检查IP地址是否没有任何限制。

根据以下说明更正您的连接DSN

“sqlsrv:Server=localhost;Database=testdb”


哦,我的上帝。祝MSSQL与任何Linux连接器/驱动程序接口好运。。。我们最后设置了一个Windows服务器,以便使用本机SQL驱动程序。。。然后用PHP编写了一个API,这样我们就可以从任何受pub/priv密钥保护的应用程序/服务器与服务器通信。@HalfCrazed我们在Rackspace的生产环境中工作得很好。我正在尝试设置一个新的开发环境,但无法使其正常工作。您的问题解决了吗?我被同样的问题困住了,这里有好几篇关于同一问题的帖子,但我没有有效的答案。看看这里,然后看看这里——这对我很有帮助。基本上,我会将tds版本设置为8.0,并根据需要设置参数和安装odbc。但是,请查看这些链接以了解这方面的更多信息。如果有人正在使用dblib,那么sqlsrv驱动程序由于某些原因无法工作,例如在最新的Debian 9下。