我知道这个问题被多次询问,我已经尝试了所有但没有任何效果。我试图连接到与Ubuntu 14.04不同的服务器上的MSSQL数据库。
来自/etc/odbcinst.in的内容
[ODBC]
Trace = No
TraceFile = /tmp/odbc.log
[FreeTDS]
Description = FreeTDS
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
UsageCount = 1
fileusage=1
dontdlclose=1
来自/etc/odbc.in的内容
[mssql]
Driver = FreeTDS
ServerName = mssql
Port = 1433
Database = My Database //database has space
Driver=/usr/local/lib/libtdsodbc.so
UsageCount = 1
TDS_Version = 7.3
instance = SQLEXPRESS
[Default]
Driver=/usr/local/lib/libtdsodbc.so
/etc/freetds/freetds.conf中的mssql部分
[mssql]
host = server ip
port = 1433
database = My Databas
instance = SQLEXPRESS
tds version = 7.3
client charset = UTF-8
当我运行以下命令时,它会生成增加的数字
tsql -S mssql -U username -P password
但是当我跑步时
isql -v mssql username password
几乎30个部分后,它返回
[S1000][unixODBC][FreeTDS][SQL Server]Unable to connect to data source
[08S01][unixODBC][FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist
[ISQL]ERROR: Could not SQLConnect
net.c:205:FAILED连接到54.214.30.231端口1433(TDS版本4.2)
当我用tsql -C检查时,错误显示在我的机器上安装的TDS版本4.2但我在conf文件中指定了7.3。是原因吗?如果是这样,我该如何升级版本?如果不是原因那么有人可以让我知道我做错了吗?
答案 0 :(得分:2)
我认为您在odbc配置文件中缺少字母 i 。应该代替odbc.in
的 odbc.ini
在isql
man页中:
isql,iusql — unixODBC命令行交互式SQL工具简介
isql DSN [USER [PASSWORD]] [选项]说明
isql是一个命令行工具,允许用户在 批量或交互式。它有一些有趣的选项,例如 选项以生成包装在HTML表中的输出。
iusql是具有内置Unicode支持的相同工具。争论
DSN
数据源名称,该名称应用于建立与数据库的连接。在 /etc/odbc.ini 中查找数据源,然后 $ HOME / .odbc.ini 文件的顺序,后者覆盖 前任的。
USER指定应在其下建立连接的数据库用户/角色。
指定用户的密码。
/etc/odbcinst.in
也是如此。应该为 /etc/odbcinst.ini
编辑基于评论
在您的情况下,阿德里安(Adrian)我认为最好创建一个新问题,因为此错误号不同于OP。
错误消息:
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified [ISQL]ERROR: Could not SQLConnect.
根据您的错误消息,您需要向Server=ip_address
添加odbc.ini
选项(我建议也添加描述)。不要忘记括号[mssql]
中的名称必须为ServerDSN
!您确定在TDS_Version = 7.3
上指定了正确的TDS版本吗? Driver
中的/etc/odbcinst.ini
指令就足够了。为什么有两个不同的驱动程序-Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
和Driver=/usr/local/lib/libtdsodbc.so
是第二个唯一的符号链接?
现在配置看起来像这样(我不得不猜测,因为我没有看到您的配置):
[mssql]
Description = "My MSSQL DB for data science"
Driver = FreeTDS
ServerName = mssql
Server = <ip_address>
Port = 1433
Database = My Database //database has space
UsageCount = 1
TDS_Version = 7.3
instance = <my_mssql_instance>