无法连接到数据源

时间:2013-04-16 04:19:57

标签: php odbc adodb freetds unixodbc

我尝试通过php + adodb连接到我的batabase。 这是我的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
我很困惑。有什么问题?

2 个答案:

答案 0 :(得分:0)

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

sudo setenforce 0

答案 1 :(得分:0)

在redhat中,但对其他Linux操作系统不确定。

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

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on

systemctl restart httpd

然后尝试连接。