gpt4 book ai didi

php - 连接到 MS SQL 数据库时出现 PDO 错误 "Adaptive Server is unavailable"

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:17 29 4
gpt4 key购买 nike

我正在尝试连接到在 Windows 服务器上运行的 SQL 服务器数据库。我在 Linux 服务器 (centos 7) 上运行此 PHP 代码。

我正在使用以下 pdo 连接字符串连接到数据库。

$db = new PDO ("dblib:192.168.2.1;dbname=TestDB","username",'pass');

当我运行代码时,出现以下异常。带有消息“SQLSTATE[HY000] 无法连接:Adaptive Server 不可用或不存在(严重性 9)”的“PDOException”

我已尝试使用 tsql 测试连接,我能够毫无错误地连接到数据库。以下代码为我提供了 TestDB 中所有表的列表。如果我没有先输入 use TestDB,它就不会工作。

tsql -S 192.168.2.1 -U username -P 'pass' -L TestDB

use TestDB
GO
select * FROM sys.Tables
GO

我的 freetds.conf 文件包含以下内容

[Server1]
host = 192.168.2.1
port = 1433
tds version = 8.0

我不知道如何使用 tsql 进行连接,但在使用 php 进行连接时却无法做到这一点。

肯定安装了 dblib 驱动程序。

print_r(PDO::getAvailableDrivers()); 

Array ( [0] => dblib [1] => mysql [2] => sqlite )

回答

找到问题的原因。原来是SELinux。以下命令解决了这个问题。

setsebool -P httpd_can_network_connect 1

setsebool -P httpd_can_network_connect_db 1

最佳答案

你有数据源名称,你应该使用它:

$db = new PDO ("dblib:host=Server1;dbname=TestDB","username",'pass');

你运行的是 Linux 吧?我建议试一试 odbc。

关于php - 连接到 MS SQL 数据库时出现 PDO 错误 "Adaptive Server is unavailable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31162553/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com