FreeTDS的作品,但odbc无法连接到MSSQL服务器

问题描述:

我有一个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

我建议您查看这篇文章的第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

希望这可以帮助!