我需要一个简单而完整的教程来从 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:~#
Run Code Online (Sandbox Code Playgroud)
编辑:
在此编辑之前,“/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
Run Code Online (Sandbox Code Playgroud)
我将这些行添加到 /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
Run Code Online (Sandbox Code Playgroud)
从一开始我就没有对“/etc/freetds/freetds.conf”进行任何更改。
尽管如此,一切都没有改变。
Tre*_*rke 11
以下是分步说明(可在此处找到):
首先,安装 unixODBC:
sudo apt-get install unixodbc unixodbc-dev
Run Code Online (Sandbox Code Playgroud)
我还安装了以下(可能是必要的)软件包:
sudo apt-get install tdsodbc php5-odbc
Run Code Online (Sandbox Code Playgroud)
然后下载、解压、编译和安装 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
Run Code Online (Sandbox Code Playgroud)
尝试通过 Telnet 连接到您的 SQL Server 实例:
telnet 192.168.0.1 1433
Run Code Online (Sandbox Code Playgroud)
使用 tsql 工具测试连接:
tsql -S 192.168.0.1 -U devuser
Run Code Online (Sandbox Code Playgroud)
这应该会提示您输入密码,之后您可以希望看到这个美丽的标志:
1>
Run Code Online (Sandbox Code Playgroud)
如果那行得通,我建议举办一个(编码)派对。接下来是一些配置。打开 FreeTDS 配置文件。/usr/local/etc/freetds.conf
将以下条目添加到文件底部。我们正在设置一个名为“MSSQL”的数据源名称 (DSN)。
[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0
Run Code Online (Sandbox Code Playgroud)
现在打开 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
Run Code Online (Sandbox Code Playgroud)
然后,最后,在 /usr/local/etc/odbc.ini 中的 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
Run Code Online (Sandbox Code Playgroud)
使用 isql 工具测试连接:
isql -v MSSQL devuser 'devpass'
Run Code Online (Sandbox Code Playgroud)
如果您看到“已连接!” 你是金色的,恭喜!如果没有,我真的很抱歉;请参阅下文,其中有一些可能会有所帮助的资源。
现在重新启动 Apache 并使用“MSSQL”作为 DSN 从 PHP 测试它。如果某些东西不起作用,您可以尝试安装任何或所有这些软件包:mdbtools libmdbodbc libmdbtools mdbtools-gmdb
| 归档时间: |
|
| 查看次数: |
75893 次 |
| 最近记录: |