Для корректного подключения к базам данных Microsoft SQL Server необходима установка драйверов ODBC. В данной статье приведены инструкции по настройки данных драйверов.
Предварительно необходимо установить программы gcc и make:
На Debian-подобных дисрибутивах:
sudo apt-get install tar gcc make g++
На RedHat-подобных дистрибутивах:
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»:
В файле «build_dm.sh». Задайте значение req_proc="unknown" (только для Astra Linux и Debian).
В файле «install.sh». Задайте значение req_proc="unknown" (только для Astra Linux и Debian).
Если установка происходит на 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.
Выполните команду:
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
Для устранения ошибок на данном этапе необходимо обратиться к администратору СУБД.
См. также: