来自 Ubuntu 的 MSSQL 连接

来自 Ubuntu 的 MSSQL 连接

我需要一个简单而完整的教程来从 Ubuntu 建立 MSSQL 连接。

我认为我安装了 FreeTDS 和 UnixODBC,但是配置非常复杂,我不明白这个问题。

我遵循了本教程:https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/wiki/Platform-Installation---Ubuntu

但我失败了。

root@hackmachine:~# isql -v example.com XXXXX XXXXXXX
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
root@hackmachine:~# 

编辑:

在此编辑之前,“/etc/odbcinst.ini”和“/etc/odbc.ini”是空的。

我将这些行添加到 /etc/odbcinst.ini:

[FreeTDS]

Description     = TDS driver (Sybase/MS SQL)

Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so

Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

CPTimeout       =

CPReuse         =

FileUsage       = 1

我将这些行添加到 /etc/odbc.ini:

[project_development]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = No
Servername      = developer
Database        = project_development

[project_test]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = developer
Database = test

[project_production]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = production
Database = project_production

我从一开始就没有对“/etc/freetds/freetds.conf”做任何更改。

但什么也没有改变。

答案1

以下是分步说明(点击此处)

首先,安装 unixODBC:

sudo apt-get install unixodbc unixodbc-dev

我还安装了以下(可能是必要的)软件包:

sudo apt-get install tdsodbc php5-odbc

然后下载、解压、编译并安装 FreeTDS(警告,URL 可能会发生变化):

cd /usr/local

wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
tar xvfz freetds-stable.tgz
cd freetds-0.82
./configure --enable-msdblib --with-tdsver=8.0 --with-unixodbc=/usr
make
make install
make clean

尝试通过 Telnet 连接到您的 SQL Server 实例:

telnet 192.168.0.1 1433

使用 tsql 工具测试连接:

tsql -S 192.168.0.1 -U devuser

这将提示您输入密码,之后您就可以抱着一丝希望看到这个美丽的标志了:

1>

如果这有效,我建议举办一个(编码)聚会。接下来是一些配置。打开 FreeTDS 配置文件。/usr/local/etc/freetds.conf

在文件底部添加以下条目。我们正在设置一个名为“MSSQL”的数据源名称 (DSN)。

[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0

现在打开 ODBC 配置文件:/usr/local/etc/odbcinst.ini

并在最后添加以下 MSSQL 驱动程序条目(FreeTDS):

[FreeTDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup=/usr/lib/odbc/libtdsS.so
FileUsage = 1
UsageCount = 1

然后,最后,在 odbc.ini 文件(/usr/local/etc/odbc.ini)中设置 ODBC 内的 DSN,通过将此位添加到文件:

[MSSQL]
Description = MS SQL Server
Driver = /usr/local/lib/libtdsodbc.so
Server = 192.168.2.3
UID = devuser
PWD = devpass
ReadOnly = No
Port = 1433

使用 isql 工具测试连接:

isql -v MSSQL devuser 'devpass'

如果您看到“已连接!”,恭喜您!如果没有,我真的很抱歉;请参阅下面的一些资源,它们可能会有所帮助。

现在重新启动 Apache 并使用“MSSQL”作为 DSN 从 PHP 进行测试。如果某些操作无效,您可以尝试安装以下任何或所有软件包:mdbtools libmdbodbc libmdbtools mdbtools-gmdb

答案2

在 Trusty 14.04 上,我遇到了http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz

当我尝试运行tsql命令时,我发现tsql可以通过 apt 安装:

$ sudo apt-get install freetds-bin

答案3

希望您已将链接中的内容复制到文件中。您需要在“/etc/odbc.ini”文件中更新 SQL 服务器详细信息。您可以参考链接http://guywyant.info/log/206/connecting-to-ms-sql-server-from-ubuntu/

答案4

回答以下隐含的问题:

我需要一个简单而完整的教程来从 Ubuntu 建立 MSSQL 连接

...并忽略所有 FreeTDS 设置内容。

使用mssql-cli安装用法)。

相关内容