首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeTDS工作,但是odbc不能连接到mssql服务器

FreeTDS工作,但是odbc不能连接到mssql服务器
EN

Stack Overflow用户
提问于 2017-02-09 12:03:13
回答 1查看 945关注 0票数 2

我在Ubuntu 16上安装了一个带有Apache2的VPS,现在我正在尝试使用UnixODBC驱动程序连接到我的业务数据库。我已经为此挣扎了两天了,我似乎不明白为什么它不能连接到我的数据库。

我已经安装了UnixODBC和FreeTDS。我的php版本是7.0。在我的index.php中,我试图在__construct类中像这样连接到数据库:

$this->DBConn =新的PDO("odbc:Driver=FreeTDS;host=SPOOF;dbname=SPOOF",'SPOOF','SPOOF');

但是,不管我做什么,做这件事都会让我回复这个错误:

代码语言:javascript
复制
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配置如下:

代码语言:javascript
复制
[Share]
Driver = FreeTDS
TDS_Version=8.0
ServerName = Share
SERVER = SPOOF
Port = 1433
Database=SPOOF

我的odbcinst.ini包含以下内容:

代码语言:javascript
复制
[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上运行,在Ubuntu16.04上运行

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-22 02:41:46

我建议查阅本文的第2部分:https://www.microsoft.com/en-us/sql-server/developer-get-started/php-ubuntu

代码语言:javascript
复制
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

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42136251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档