FreeTDS工作,但ODBC无法连接

时间:2022-08-31 04:35:01

I am trying to run connect to a MSSQL server from an Ubuntu 12.04 webserver with FreeTDS and unixODBC.

我正在尝试使用FreeTDS和unixODBC从Ubuntu 12.04网络服务器连接到MSSQL服务器。

Using tsql i can connect to the server with

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

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

No problem there.

没问题。

When I try to connect with isql however, I get the following error message:

当我尝试连接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

My config files are as follows:

我的配置文件如下:

odbc.ini

ODBC.INI

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

odbcinst.ini

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

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

I followed the installation guide 1. here and 2. here

我按照安装指南1.在这里和2.在这里

Why isn't isql connecting properly?
My guess is that the mistake is super obvious but I'm just too stupid to see it :D

为什么isql连接不正确?我的猜测是,这个错误是非常明显的,但我看起来太愚蠢了:D

2 个解决方案

#1


11  

The issue was this line in odbc.ini

问题是odbc.ini中的这一行

[database3] must be [dbs3] in your case.

For those that are also having this problem, Check also the

对于那些也有这个问题的人,请检查

ServerName  = *Points to the name of the server configured in freetds.conf*

#2


1  

If odbc does not find the datasource it means you are providing the wrong one

如果odbc找不到数据源,则意味着您提供了错误的数据源

You are probably trying to connect to dbs3 which will fail if you don't have it in odbc.ini

您可能正在尝试连接到dbs3,如果您没有在odbc.ini中,它将失败

You should connect to [database3] for ODBC

你应该连接到[database3]的ODBC

isql -v database3 <username> <password>

#1


11  

The issue was this line in odbc.ini

问题是odbc.ini中的这一行

[database3] must be [dbs3] in your case.

For those that are also having this problem, Check also the

对于那些也有这个问题的人,请检查

ServerName  = *Points to the name of the server configured in freetds.conf*

#2


1  

If odbc does not find the datasource it means you are providing the wrong one

如果odbc找不到数据源,则意味着您提供了错误的数据源

You are probably trying to connect to dbs3 which will fail if you don't have it in odbc.ini

您可能正在尝试连接到dbs3,如果您没有在odbc.ini中,它将失败

You should connect to [database3] for ODBC

你应该连接到[database3]的ODBC

isql -v database3 <username> <password>