我知道这个问题被问了很多次,我试过了,但都没有成功。我正在尝试连接到与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的内容
[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:连接到54.214.30.231端口1433(TDS版本4.2)失败
当我用tsql-C检查TDS版本4.2时,错误显示它安装在我的机器中,但我在conf文件中指定了7.3。是原因吗?如果是,我如何升级版本?如果这不是原因,那么有人能告诉我我做错了什么吗?
我认为odbc配置文件中缺少一个字母I。它应该代替odbc.in
aodbc.ini
来自isql
手册页:
isql,iusql--unixODBC命令行交互式SQL工具简介
isql DSN[USER[PASSWORD]][选项]描述
isql是一个命令行工具,允许用户在批处理或交互。它有一些有趣的选项,例如选项生成包装在HTML表中的输出。
iusql也是一个内置Unicode支持的工具。参数
DSN-
数据源名称,应用于连接到数据库。在/etc/odbc.ini和$HOME/.odbc.ini文件,后者覆盖前者的
USER指定应在其下进行连接的数据库用户/角色。
指定USER的PASSWORD密码。
/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>