Подготовка ODBC драйвера для подключения к Microsoft SQL Server

Для корректного подключения к базам данных Microsoft SQL Server необходима установка драйверов ODBC. В данной статье приведены инструкции по настройки данных драйверов.

Предварительно необходимо установить программы gcc и make:

sudo apt-get install tar gcc make g++

sudo yum install tar gcc make

Если ранее был установлен драйвер Microsoft SQL Server ODBC Driver 1.0 for Linux необходимо его удалить и установить Microsoft ODBC Driver 11 for SQL Server (драйвер доступен по адресу https://www.microsoft.com/en-us/download/details.aspx?id=36437). Для данной версии драйвера рекомендуется использование unixODBC версии не старше 2.3.0.

Процесс установки диспетчера драйверов описан в статье «Installing the Driver Manager».

Примечание. Не рекомендуется использовать флаг SQL_WCHART_CONVERT при сборке unixODBC.

Настройка сборки и установка драйвера диспетчера

После распаковки архива с драйвером и перед установкой, прежде всего необходимо внести изменения в файлы «build_dm.sh» и «install.sh»:

Если установка происходит на Debian-подобный дистрибутив (Ubuntu, Astra Linux и т.п.), то в файле «install.sh» замените строку:

req_libs=( glibc e2fsprogs krb5-libs openssl )

на:

req_libs=( libc6 e2fsprogs libkrb5-3 openssl )

Затем внесите изменения в функцию «check_required_libs». Данная функция должна выглядеть следующим образом:

function check_required_libs

{

log "Checking that required libraries are installed"

for lib in ${req_libs[@]}

do

local present=$(dpkg-query -l "$lib" | grep "$lib" 2>/dev/null)

echo "$present" >> "$log_file"

if [ "$present" == "" ]; then

    echo "The $lib library was not found installed in the dpkg database."

    echo "See README for which libraries are required for the $driver_name."

    return 1;

fi

   done

   return 0;

}

В файле «build_dm.sh» замените -xvzf на -xvf.

Скачайте установочный файл ODBC по адресу ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.0.tar.gz.

Установка ODBC

Выполните команду:

bash build_dm.sh --download-url=file://unixODBC-2.3.0.tar.gz

Далее будет выведено сообщение:

>>Run the command 'cd /tmp/unixODBC<временная метка>/unixODBC-2.3.0; make install' to install the driver manager.

Установите пакет:

cd /tmp/unixODBC<временная метка>/unixODBC-2.3.0

sudo make install
cd -

Если команды выполняются через пользователя sudo, то для перехода в директорию необходимо сменить пользователя на root с помощью команды:

sudo -i

Далее перейти в папку и выполнить команду:

cd /tmp/unixODBC<временная метка>/unixODBC-2.3.0

make install

После этого выйти из-под пользователя root сочетанием клавиш «CTRLl+D».

Примечание. Команда «sudo make install» может быть заменена на «sudo checkinstall», если программа checkinstall установлена в ОС.

После этого необходимо сохранить изменения. Проверьте возможность установки драйвера в системе выполнив команду:

bash install.sh verify

В результате будет выведена информация о результатах проверки. При условии отсутствия проблем для установки сообщение будет иметь следующий вид:

Starting install for Microsoft ODBC Driver 11 for SQL Server

Checking for 64 bit Linux compatible OS ..................................... OK

Checking required libs are installed ........................................ OK

unixODBC utilities (odbc_config and odbcinst) installed ..................... OK

unixODBC Driver Manager version 2.3.0 installed ............................. OK

unixODBC Driver Manager configuration correct .............................. OK*

Microsoft ODBC Driver 11 for SQL Server already installed ............ NOT FOUND

Если при проверке возникли ошибки, то сообщение о них будет записано в лог-файл, например:

See /tmp/msodbcsql.30762.3652.5941/install.log for more information about installation failures.

Для дальнейшей установки необходимо устранить все ошибки. После их устранения можно выполнить команду для установки драйвера:

bash install.sh install --accept-license

Создание символьной ссылки для платформы

Для создания символьной ссылки для платформы выполните команды:

cd /opt/foresight/fp9.0-biserver/bin
sudo ln -s
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0 libmsodbcsql-11.0.so

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

Разделяемые библиотеки

Перед началом работы с драйвером нужно убедиться в отсутствии проблем с разделяемыми библиотеками. Для этого выполните команду:

ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0 | grep not

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

В случае присутствия всех необходимых библиотек можно переходить к регистрации драйвера.

Если в результате выполнения команды получился список, например:

libcrypto.so.10 => not found

libssl.so.10 => not found

То необходимо выполнить следующие действия:

cd /usr/lib/x86_64-linux-gnu

sudo apt-get install libssl-dev

sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

sudo ln -s libssl.so.1.0.0 libssl.so.10

Для Ubuntu символьные ссылки будут другие:

cd /usr/lib/x86_64-linux-gnu
sudo apt-get install libssl-dev​
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 libcrypto.so.10
sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 libssl.so.10​

После это ещё раз проверьте все зависимости драйвера и в случае отсутствия проблем переходить к регистрации.

Регистрация

После выполнения установки ODBC запись о драйвере будет добавлена в файл «odbcinst.ini». При необходимости регистрацию драйвера можно осуществить вручную.

Регистрация драйвера в ручную

Для регистрация драйвера выполните команду:

odbcinst -i -d -f mssql.driver.template

где файл mssql.driver.template содержит необходимые для работы драйвера параметры. Например:

[ODBC Driver 11 for SQL Server]

Description  = Microsoft ODBC Driver 11 for SQL Server

Driver   = /opt/microsoft/msodbcsql/lib64/libmsodbcsql-11.0.so.2270.0

Threading  = 1

IconvEncoding = UTF16LE

DSN    = MSSQL_DSN

Для проверки правильности установки драйвера можно выполнить следующую команду:

odbcinst -q -d -n "ODBC Driver 11 for SQL Server"

Результатом правильной установки будет служить вывод всех параметров драйвера с их значениями.

Проверка подключения

Перед непосредственной работой с драйвером необходимо протестировать настройки подключения. Сперва можно использовать подключение с применением telnet:

telnet 192.168.1.1 1433

В случае ошибки подключения будет получено сообщение:

telnet: Unable to connect to remote host: Connection refused

Для устранения ошибок на данном этапе обратитесь к системному администратору.

При успешном подключении будет получено сообщение следующего вида:

Connected to 192.168.1.1.

Следующим шагом является проверка соединения с сервером с использованием параметров из источника данных. Для это выполните следующую команду:

isql -v <DATA_SOURCE_NAME> <USER>@<HOST> <PASSWORD>

В случае успешного подключения к серверу будет получено следующее сообщение:

+---------------------------------------+

| Connected!                            |

|                                       |

| sql-statement                         |

| help [tablename]                      |

| quit                                  |

|                                       |

+---------------------------------------+

При этом будет возможность выполнить запросы к базе данных.

В случае проблем будет выведено следующее сообщение:

[ISQL]ERROR: Could not SQLConnect

Для устранения ошибок на данном этапе необходимо обратиться к администратору СУБД.

См. также:

Дополнительные настройки