通过 FreeTDS/UnixOdbc 连接到 SQL 服务器时出现问题

通过 FreeTDS/UnixOdbc 连接到 SQL 服务器时出现问题

我正在尝试通过 ODBC 连接到 MS-SQL 服务器,这可能是最常见的问题之一,但是这个问题非常奇怪,因为相同的配置在我的本地机器上运行良好,我的意思是我在本地计算机上完成了所有操作并且正常运行,但现在在其他机器上却不工作。

我已经通过以下方式安装了必备软件包

sudo apt-get install unixodbc unixodbc-dev freetds-dev freetds-bin tdsodbc

我的配置

/etc/freetds/freetds.conf
# A typical Microsoft server
[SQLDemo]
host = xxx.xxx.xxx.xxx
port = 1433
tds version = 8.0      # I've tried 7.0, 7.2 as well
-----------------------------------------------
/etc/odbc.ini
[SQLDemo]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Server=xxx.xxx.xxx.xxx\SQL2014      #I've tried servername=SQLDemo as well
Database = MY_DB_NAME
-----------------------------------------------
/etc/odbcinst.ini
[ODBC]
Trace=Yes
TraceFile=/home/odbc_trace.log

[FreeTDS]
Description = TDS Driver (Sysbase/MS SQL)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup =  /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
FileUsage = 1

我正在运行下面的一段代码并收到错误

cnnstr = 'DSN=%s;UID=%s;PWD=%s' % ('SQLDemo', 'xyz', 'xyz');
db = pyodbc.connect(cnnstr);

pyodbc.Error: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')

我需要知道这里出了什么问题。我需要再次提及相同的配置/代码在我的本地计算机上有效。

两台机器Ubuntu 16.04

提前致谢

答案1

问题与目标机器中 SQL Server 实例的默认端口有关,该端口已更改为 1434。因此所有配置都是正确的,只需要调整端口号,并且在连接之前还要确保 SQL Server 的端口。

相关内容