3

我尝试通过 php + adodb 连接到我的数据库。这是我的 php 代码:

$kpp_db = ADONewConnection('odbc_mssql');
$kpp_db->debug = true;
$kpp_db->charSet="UTF-8";
$kpp_dbDSN = "Driver={SQL Server};Server=$kppConfig_dbHost;Database=$kppConfig_dbName;";
$kppConfig_akEnabled=$kpp_db->Connect($kppConfig_dbDSN, $kppConfig_dbLogin, $kppConfig_dbPassword);

但这是行不通的。我收到消息

S1000:[unixODBC][FreeTDS][SQL Server]无法连接到数据源

这是我的 /etc/odbc.ini 文件:

[SQL Server]
Driver=FreeTDS 
Description=testsql
Trace=Yes
TraceFile=~/workspace/mstest.log

和 /etc/odbcinst.ini 文件:

[FreeTDS]
Description             = FreeTDS unixODBC Driver
Driver          = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup           = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
UsageCount              = 1

我很困惑。怎么了?

4

2 回答 2

1

在 redhat 中,但不确定是否适用于其他 linux 操作系统。

您还必须允许 apache/httpd 与 MSSQL 通信,只需键入以下命令,然后重新启动 httpd:

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on

systemctl restart httpd

然后尝试连接。

于 2017-11-19T21:01:45.440 回答
0

您是否尝试过像这里描述的那样通过命令行连接?如果 tsql 和 isql 都工作,那么您的配置文件不是问题。根据您使用的操作系统,这可能是权限问题。对我来说,禁用 SELinux 就可以了:

sudo setenforce 0
于 2015-10-19T12:06:14.100 回答