【发布时间】:2016-08-17 00:53:39
【问题描述】:
我搜索了与我的问题相关的答案,但没有找到我要查找的内容。
我有 Linux CentOS 6.7 的服务器。我需要在 Windows Small Business Server 2003 上连接到 MS SQL Server 2005。在 CentOS 中,我安装了 FreeTDS,并设法使用以下命令从终端连接到 SQL Server:
# TDSVER=7.0 tsql -H ServerIPAdress -p 1433 -U username -P password
据我所知,此命令绕过 freetds.conf 中的设置。 现在我需要从 PHP 脚本连接。我正在使用 PDO 扩展,我尝试了这个 DSN 字符串:
$db = new PDO("dblib:version=7.0;host=ServerIPAdress;dbname=Database;","username","password");
这导致我出现第一个错误:
找不到驱动程序
好的,我明白了 - 我的 PHP 5.3.3 安装没有安装 PDO 驱动程序 dblib。 我的问题:如何在 CentOS 中安装 pdo_dblib 驱动程序?许多教程和答案建议通过此命令安装:
yum install php5-sybase
但是那个包不存在:
没有可用的包 php-sybase。
如果我用命令检查 tsql 配置
tsql -C
我得到这些输出:
Version: freetds v0.95
freetds.conf directory: /usr/local/etc
MS db-lib source compatibility: no
Sybase binary compatibility: no
Thread safety: yes
iconv library: yes
TDS version: 5.0
iODBC: no
unixodbc: yes
据我了解,我需要配置 FreeTDS:
./configure --enable-msdblib --with-pdo-dblib=/usr/local
但是如何在安装后配置 FreeTDS?我试图删除当前版本,但我找不到这样做的方法。我也尝试安装另一个版本,但配置没有改变。
感谢任何建议。
【问题讨论】:
-
要从 PHP 连接,您需要 FreeTDS 和 unixODBC。 PHP 与 unixODBC 对话,而 FreeTDS 允许您在 unixODBC 层和 SQL Server 本身之间进行连接。您是否使用
isql测试过该连接是否也适用于 unixODBC?这里的错误也没有多大帮助,您需要尽可能打开登录。 -
您好,感谢您的回复。是的,我使用
isql进行了测试,我可以看到 SQL 提示符,因此可以正常工作。我只需要找到如何使用 PDO 从 PHP 连接到 SQL Server。 -
请分享您的 freetds.conf 、 odbcinst.ini 和 odbc.ini。从终端运行 odbcinst -j 以获取配置文件。
标签: tsql centos freetds unixodbc