【问题标题】:Unable to connect to data source无法连接到数据源
【发布时间】:2017-11-20 05:01:45
【问题描述】:

我尝试通过 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

我很困惑。怎么了?

【问题讨论】:

  • 您的许多$ 变量值是多少?比如$kppConfig_dbHost$kppConfig_dbName
  • 变量已定义。 $kppConfig_dbHost = '172.17.100.7'$kppConfig_dbName = KPP_temp

标签: php odbc adodb freetds unixodbc


【解决方案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

然后尝试连接。

【讨论】:

    【解决方案2】:

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

    sudo setenforce 0
    

    【讨论】:

      猜你喜欢
      • 2020-12-03
      • 2012-05-28
      • 2017-03-25
      • 1970-01-01
      • 2018-04-23
      • 2012-01-14
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      相关资源
      最近更新 更多