2017-02-09 154 views
2

我有一個VPS與Apache2安裝在Ubuntu 16.現在我試圖連接到我的業務數據庫使用UnixODBC驅動程序。我一直在爲此掙扎兩天,我似乎無法弄清楚爲什麼它不會連接到我的數據庫。FreeTDS的作品,但odbc無法連接到MSSQL服務器

我已經安裝了FreeODDS的UnixODBC。我的PHP版本是7.0。在我的index.php我試圖像這樣連接到我的數據庫在__construct類:

$這個 - > DBConn =新PDO( 「ODBC:驅動程序= freetds的;主機=惡搞; DBNAME =惡搞」 ,'SPOOF','SPOOF');

但這樣做會給我回這個錯誤,無論我做什麼:

Fatal error: Uncaught PDOException: SQLSTATE[08001] SQLDriverConnect: 0 [unixODBC][FreeTDS][SQL Server]Unable to connect to data source in /var/www/ttv-boomgaardshoek.nl/public_html/Sharelogistics/index.php:5 Stack trace: #0 /var/www/ttv-boomgaardshoek.nl/public_html/Sharelogistics/index.php(5): PDO->__construct('odbc:Driver=Fre...', 'SPOOF', 'SPOOF') #1 /var/www/ttv-boomgaardshoek.nl/public_html/Sharelogistics/index.php(8): CakeClass->__construct() #2 {main} thrown in /var/www/ttv-boomgaardshoek.nl/public_html/Sharelogistics/index.php on line 5 

但我想不通爲什麼它說,它不能連接到數據源。我有我的odbc.ini配置是這樣的:

[Share] 
Driver = FreeTDS 
TDS_Version=8.0 
ServerName = Share 
SERVER = SPOOF 
Port = 1433 
Database=SPOOF 

我ODBCINST.INI包含此:

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

,但它只是將無法連接,也是IP被列入白名單MSSQL服務器上。憑據是正確的。這是乳寧在Linux VPS,在Ubuntu 16.04

回答

1

我建議您查看這篇文章的第2部分:https://www.microsoft.com/en-us/sql-server/developer-get-started/php-ubuntu

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - 
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list 
exit 
sudo apt-get update 
sudo ACCEPT_EULA=Y apt-get install msodbcsql 
sudo apt-get install unixodbc-dev gcc g++ build-essential 
sudo pecl install sqlsrv pdo_sqlsrv 
sudo echo "extension= pdo_sqlsrv.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` 
sudo echo "extension= sqlsrv.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` 

此時就會將已安裝的PDO_SQLSRV模塊:https://github.com/Microsoft/msphpsql

希望這可以幫助!

相關問題