gpt4 book ai didi

sql-server - [S1000][unixODBC][FreeTDS][SQL Server]无法连接到数据源

转载 作者:行者123 更新时间:2023-12-02 09:41:53 25 4
gpt4 key购买 nike

我知道这个问题被问过很多次,我已经尝试了所有方法,但没有任何效果。我正在尝试连接到 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:连接到 54.214.30.231 端口 1433 失败(TDS 版本 4.2)

当我使用 tsql -C 检查时,错误显示我的计算机中安装了 TDS 版本 4.2,但我在 conf 文件中指定了 7.3。是这个原因吗?如果可以的话如何升级版本?如果这不是原因,那么有人可以告诉我我做错了什么吗?

最佳答案

我认为您的 odbc 配置文件中缺少字母 i。它应该代替 odbc.inodbc.ini

来自isql man页面:

isql, iusql — unixODBC command-line interactive SQL tool Synopsis

isql DSN [USER [PASSWORD]] [options] Description

isql is a command line tool which allows the user to execute SQL in batch or interactively. It has some interesting options such as an option to generate output wrapped in an HTML table.

iusql is the same tool with built-in Unicode support. Arguments

DSN

  • The Data Source Name, which should be used to make connection to the database. The data source is looked for in the /etc/odbc.ini and $HOME/.odbc.ini files in that order, with the latter overwriting the former.

  • USER Specifies the database user/role under which the connection should be made.

  • PASSWORD password for the specified USER.

/etc/odbcinst.in 也是如此。应为 /etc/odbcinst.ini

根据评论进行编辑

Adrian 在你的情况下我认为最好创建一个新问题,因为这个错误号与 OP 不同。

错误信息:[IM002][unixODBC][驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序[ISQL]错误:无法 SQLConnect。

根据您的错误消息,您需要将 Server=ip_address 选项添加到 odbc.ini 中(我建议也添加描述)。不要忘记括号[mssql]中的名称必须是ServerDSN!您确定您在 TDS_Version = 7.3 中指定了正确的 TDS 版本吗? /etc/odbcinst.ini 中的 Driver 指令应该足够了。为什么有两个不同的驱动程序 - Driver =/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.soDriver=/usr/local/lib/libtdsodbc.so code> 第二个只是符号链接(symbolic link)吗?

现在配置看起来像这样(我必须猜测,因为我没有看到你的配置):

[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>

关于sql-server - [S1000][unixODBC][FreeTDS][SQL Server]无法连接到数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com