Проблема с подключением к серверу SQL через FreeTDS/UnixOdbc

Я пытаюсь подключиться к серверу MS-SQL через ODBC, возможно, это один из наиболее часто задаваемых вопросов, но этот вопрос очень странный, потому что такая же конфигурация работает на моей локальной машине, я имею в виду, что я все сделал на своем локальном компьютере и все в порядке, но сейчас на другой машине не работает.

Я установил необходимые пакеты через

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.

Другие вопросы по тегам