Тайм-аут подключения unixODBC к серверу SQL

У меня проблема с unixODBC. Мне нужно несколько подключений к разным экземплярам сервера Sql, и все они работают, кроме одного. Он имеет дополнительный параметр в host.

Все хосты имеют IP-адрес или просто имя хоста, но тот, который не работает, имеет IP\smth

Я пытался:

Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
Database=dbname
Server=192.168.1.1/PARAM
Port=1433

Также пробовал экранировать, кавычки и т.д.

isql -v возвращает:

[S1T00][unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired
[08001][unixODBC][Microsoft][ODBC Driver 13 for SQL Server]MAX_PROVS: Error Locating Server/Instance Specified [xFFFFFFFF]. 
[08001][unixODBC][Microsoft][ODBC Driver 13 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.
[ISQL]ERROR: Could not SQLConnect

person Lukas Ignatavičius    schedule 14.03.2016    source источник
comment
Привет, Лукас - ты когда-нибудь мог определить ответ на вопрос ниже? Я столкнулся с ошибкой unixODBC][Microsoft][ODBC Driver 13 for SQL Server] с истекшим временем ожидания входа в систему, которую не смог устранить.   -  person E.Escoba    schedule 16.11.2017
comment
Используете ли вы правильные файлы конфигурации (odbc.ini и odbcinst.ini)? Местоположение показано через odbcinst -j   -  person R Yoda    schedule 21.01.2018
comment
Согласно Microsoft (docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/) IP-порт должен быть указан после имени базы данных через запятую (например, 192.168.178.1,1433). Порт не является допустимым ключевым словом в файле odbc.ini для MS ODBC (по крайней мере, в OSX, согласно Microsoft).   -  person R Yoda    schedule 21.01.2018


Ответы (1)


Я мог подключиться из MAC OSX (Sierra) через unixODBC к SQL Server 2017 (установленному в док-контейнере с использованием этого образа: https://hub.docker.com/r/microsoft/mssql-server-linux/), выполнив следующие действия:

  1. Установите драйвер ODBC, как описано здесь: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server< /а>

  2. Узнайте, в каком файле конфигурации odbc.ini хранятся системные DSN и где найти имя драйвера ODBC:

    odbcinst -j ... DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini ...

  3. Запомните точное имя драйвера из файла odbcinst.ini (предварительно настроенного при установке драйвера на шаге 1):

    ... [ODBC Driver 13 for SQL Server] ...

  4. Отредактируйте файл odbc.ini и добавьте DSN в свою базу данных (все разрешенные ключевые слова описаны здесь: https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/строкасоединения-ключевыеслова-и-данные-источники-имена-dsns):

    ... [MSSQLTest]
    Driver = ODBC Driver 13 for SQL Server
    Server = 192.168.178.1,1433
    ...

    Примечание. Используйте здесь IP-адрес вашего сервера (или имя сервера) и номер порта.

  5. Проверьте соединение (теперь оно должно работать):

    isql MSSQLTest sa Password12345 -v

    Примечание. Замените имя пользователя «sa» и пароль «Password12345» своими учетными данными!

    Тогда вы должны увидеть:

    Связанный!

  6. Наслаждайтесь горячим напитком с кофеином ;-)

person R Yoda    schedule 21.01.2018