mssql соединение через одик

У меня проблема с подключением базы данных mssql через odbc в Ubuntu 16.04 LTS. Я установил unix odbc и драйвер мидии.

Драйвер mssql объявлен в odbcinst.ini:

statadmin @ dsc-stat: ~ $ cat /etc/odbcinst.ini [Драйвер ODBC 13 для SQL Server] Описание = Драйвер Microsoft ODBC 13 для SQL Server Драйвер =/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.1.0 UsageCount=1

Мой DSN с именем DW16 находится в odbc.ini:

statadmin @ dsc-stat: ~ $ cat /etc/odbc.ini [DW16] Driver = ODBC Driver 13 для SQL Server Имя сервера =10.0.0.52 Порт =1433

прямое подключение (без DSN) к базе данных работает:

statadmin @ dsc-stat: ~ $ sqlcmd -S dsc-bdd1.dscptl.loc -U statsql Пароль: 1> выбрать топ-5 libdef из defaut 2>; 3> GO

libdef

DEFAUT PURCTUEL SUREPAISSEUR PLIS CASSES TISSAGE FIL TIRANT FIL (затронуто 5 строк)

Но, используя DSN, я получаю сообщение об ошибке:

statadmin @ dsc-stat: ~ $ sqlcmd -D -S DW16 -U statsql Пароль: Sqlcmd: Ошибка: Драйвер Microsoft ODBC 13 для SQL Server: истекло время ожидания входа. Sqlcmd: ошибка: драйвер Microsoft ODBC 13 для SQL Server: поставщик TCP: код ошибки 0x2AFA. Sqlcmd: Ошибка: Драйвер Microsoft ODBC 13 для SQL Server: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или недоступен. Проверьте, правильно ли указано имя экземпляра и настроен ли SQL Server для разрешения удаленных подключений. Дополнительные сведения см. В электронной документации по SQL Server.

Полагаю, проблемы с аутентификацией tcpporter не связаны с прямым подключением. Я пробовал с IP-адресом, а также с именем сервера без разницы.

надеюсь, у кого-нибудь здесь будет хорошая идея, чтобы помочь мне.

Томас

1 ответ

Наконец получил ответ, я не знаю, где мой коллега нашел ответ, но вот что он мне отправил:

[MSSQLTest] Driver = ODBC Driver 11 для SQL Server Server = [протокол:] сервер [, порт]

Замечания:

Порт не является допустимым ключевым словом в файле ~/.odbc.ini

для драйвера Microsoft ODBC для Linux

При желании вы можете указать протокол и порт для подключения к серверу.

Например, Server = tcp: имя_сервера,12345.

Чтобы подключиться к именованному экземпляру на статическом порту, используйте Server = имя_сервера, номер_порта. Подключение к динамическому порту не поддерживается.

мой odbc.ini, должен быть:

[DW16] 
Driver=ODBC Driver 13 for SQL Server 
Server=TCP:dsc-bdd1.dscptl.loc,1433

Работает также с IP-адресом. Надеюсь, что это может помочь кому-то еще.

Томас

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