FreeTDS工作,但ODBC无法连接?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (632)

我试图从FreeTDS和unixODBC的Ubuntu 12.04网络服务器上运行连接到MSSQL服务器。

使用TSQL我可以连接到服务器

~$ tsql -S dbs3 -U <username> -P <password>

那里没问题。

但是,当我尝试使用isql连接时,出现以下错误消息:

~$ isql -v database3 <username> <password>
[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

我的配置文件如下所示:

ODBC.INI

[database3]
Driver=FreeTDS
TDS_Version=8.0
Servername=dbs3
Port=1433
Database=benchmark_res

ODBCINST.INI

[FreeTDS]
Description=FreeTDS v0.91
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsS.so
Trace=Yes
TraceFile=/tmp/freetds.log
ForceTrave=Yes
UsageCount=1

freetds.conf

# This file is installed by FreeTDS if no file by the same
# name is found in the installation directory.
#
# For information about the layout of this file and its settings,
# see the freetds.conf manpage "man freetds.conf".

# Global settings are overridden by those in a database
# server specific section
[global]
    # TDS protocol version
;   tds version = 4.2

    # Whether to write a TDSDUMP file for diagnostic purposes
    # (setting this to /tmp is insecure on a multi-user system)
;   dump file = /tmp/freetds.log
;   debug flags = 0xffff

    # Command and connection timeouts
;   timeout = 10
;   connect timeout = 10

    # If you get out-of-memory errors, it may mean that your client
    # is trying to allocate a huge buffer for a TEXT field.
    # Try setting 'text size' to a more reasonable limit
    text size = 64512

# A typical Sybase server
[egServer50]
    host = symachine.domain.com
    port = 5000
    tds version = 5.0

# A typical Microsoft server
[egServer70]
    host = ntmachine.domain.com
    port = 1433
    tds version = 7.0

[dbs3]
    host = <server-ip>
    port = 1433
    tds version = 8.0

为什么isql不能正确连接?

提问于
用户回答回答于

如果odbc没有找到数据源,这意味着你提供了错误的数据源

dbs3如果你没有在odbc.ini文件中,你可能试图连接到哪一个将会失败

你应该连接到[database3]ODBC

isql -v database3 <username> <password>
用户回答回答于

问题是odbc.ini中的这一行

[database3] must be [dbs3] in your case.
ServerName  = *Points to the name of the server configured in freetds.conf*

扫码关注云+社区

领取腾讯云代金券