使用FreeTDS通过ODBC连接到MSSQL

问题描述:

我正在与一组需要从Linux主机访问MSSQL数据库并在我的搜索中发现的FreeTDS,我可以与FreeTDS连接,但我们的程序员声明ODBC将要求用FreeTDS配置他们的PHP代码来工作。据说,我曾试着在过去的一天里配置了unixODBC和unixODBC_23,并且在找到可正常工作的配置方面一直没有成功,而且我也无法获得跟踪工作。因此,事不宜迟,这里是我的配置使用FreeTDS通过ODBC连接到MSSQL

--- ODBC.INI和odbc_23.ini ---

[TC] 
Description = FreeTDS Connection 
Driver = FreeTDS 
Database = mydb 
ServerName = 192.168.1.12 
TDS_Version = 7.0 
PORT = 3433 
[Default] 
Driver   = /usr/local/freetds-0.91/lib/libtdsodbc.so 

--- ODBCINST.INI和odbcinst_23.ini ---

[FreeTDS] 
Description = FreeTDS 
Driver = /usr/local/freetds-0.91/lib/libtdsodbc.so 
Trace = 1 
TraceFile = /tmp/freetds.log 
UsageCount = 1 

当我尝试通过isql连接时,这里是我收到的。

[email protected](~)# isql_23 -v TC myuser mydb 
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source 
[01000][unixODBC][FreeTDS][SQL Server]Unknown host machine name. 
[ISQL]ERROR: Could not SQLConnect 
[email protected](~)# 

任何想法将不胜感激!

尝试Server而不是ServerName?

Server = 192.168.1.12 
+0

,似乎有帮助!现在即时连接,但我的凭证失败。很确定我能弄清楚其余的。非常感谢Philippe! – 1lowlysysadm

好了,还有的是,我不得不做出除了改变“服务器名称”一个额外的变化来“服务器”,这是我删除“数据库= mydb的”,并将其移动到“服务器”和现在我的文件看起来像这样:

[TC] 
Description = FreeTDS 
Driver = FreeTDS 
Server = 192.168.1.12\mydb 
TDS_Version = 7.0 
PORT = 3433 

现在有了这个命令即时通讯连接:

[email protected](~)# isql_23 -v TC user password 
+---------------------------------------+ 
| Connected!       | 
|          | 
| sql-statement       | 
| help [tablename]      | 
| quit         | 
|          | 
+---------------------------------------+ 
SQL> ^C 
[email protected](~)#