Проблема с подключением к серверу 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.