Я пытаюсь соединиться с SQL-СЕРВЕРОМ MS через ODBC, вероятно, это - один из наиболее заданных вопросов, но этот является очень странным, потому что та же конфигурация работает в моей локальной машине, я подразумеваю, что сделал все на своем локальном компьютере и его OK, но теперь в другой машине, не работающей.
Я установил необходимые как условие пакеты через
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
Заранее спасибо
Проблема была связана с портом по умолчанию экземпляра SQL Server в целевой машине, это было изменено на 1434. таким образом, вся конфигурация является корректными выступами, должен скорректировать номер порта, также прежде чем соединение удостоверится о порте SQL Server.