我跟着this解決了什麼似乎是完全相同的問題,但是我沒有像我期望的那麼多的成功。在/etc/freetds.conf
通過CentOS 7上的PHP連接到遠程SQL Server
首先由specifiying主機: 我設立了PDO_ODBC,unixODBC數據所需的配置文件和freetds的包
[mssql] host = DBHost port = 1433 tds version = 7.3
然後由
/etc/odbcinst.ini
指定freetds的驅動程序位置:[freetds] Description = Ms SQL database access with Free TDS Driver64 = /usr/lib64/libtdsodbc.so.0 Setup64 = /usr/lib64/libtdsS.so.2 FileUsage = 1 UsageCount = 1
然後通過指定
/etc/odbc.ini
中的DSN:[mssql] Description = mssql server Driver = FreeTDS Database = CET_PhonesDB ServerName = mssql TDS_Version = 7.3
最後這裏是我的PHP:
try {
$pdo = new PDO('odbc:mssql', 'dbuser', 'dbpass');
}
catch(Exception $e){
echo $e->getMessage();
}
返回:「SQLSTATE [08S01]的SQLConnect:20009 [unixODBC數據] [freetds的] [SQL服務器]無法連接:Adaptive Server的不可用或不存在「。
我試過使用$tsql -S mssql -U dbuser -P dbpass
(測試FreeTDS)和$isql mssql dbuser dbpass
(哪個測試unixODBC)進行故障排除,它們都成功連接。這導致我相信問題出在PDO_ODBC或PHP配置中的其他東西。任何幫助非常感謝:)