2

有谁知道如何在 Linux 网络服务器上安装 Ms SQL 扩展 2005?网络服务器目前有 FreeTDS 库版本,我不知道这意味着什么。但是当我尝试连接时,它并没有说“mssql_connect() 不存在”,而是说“无法连接到服务器:xx.xx.xx.xx”

我想这是因为扩展的版本,因为我在带有 ntwdblib.dll 的 Windows 上发生了这个问题。但我不知道如何在 Linux 上解决这个问题。

我只需要使用这些功能。该数据库位于 Windows 服务器上,因此我想使用 mssql_connect() 连接到它。

4

2 回答 2

0

可以使用mssql_*FreeTDS 库在 Linux 上使用函数,但需要将支持编译成 PHP 二进制文件 ( --with-mssql)

于 2012-10-22T13:11:33.473 回答
0

您是否安装了 unixODBC 模块? sudo apt-get install unixodbc

您是否为 PHP 安装了 ODBC 支持? sudo apt-get install php5-odbc

您是否在 odbc.ini 和 odbcinst.ini 文件中定义了与 Microsoft Sequel Server 的连接?

odbc.ini

# Define a connection to the MSSQL server.
# The Description can be whatever we want it to be.
# The Driver value must match what we have defined in /etc/odbcinst.ini
# The Database name must be the name of the database this connection will connect to.
# The ServerName is the name we defined in /etc/freetds/freetds.conf
# The TDS_Version should match what we defined in /etc/freetds/freetds.conf
[msft_sql_server]
Description             = The Microsoft Sequel Server
Driver                  = freetds
Database                = XXXXXXXXXX
ServerName              = msft_sql_server
TDS_Version             = 8.0

odbcinst.ini

# Define where to find the driver for the Free TDS connections.
[freetds]
Description     = MS SQL database access with Free TDS
Driver          = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup           = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
UsageCount      = 1

然后您的 PHP 连接将如下所示:

$db_connection = new PDO("dblib:dbname=$database_server;host=$database_server", $db_username, $db_password);

您可以使用 iSQL 程序测试上述设置,以确保您可以建立连接。

如果您仍然无法从 Linux 服务器连接到 MSFT 服务器 - 是否有防火墙阻碍?您确定您拥有有效的用户凭据吗?MSFT 服务器会接受来自远程客户端的连接吗?

于 2012-10-22T13:24:58.880 回答