Для корректного подключения к базам данных Microsoft SQL Server установите драйверы ODBC. В данной статье приведены инструкции по настройке данных драйверов.
Предварительно установите программы gcc и make:
на Debian-подобных дистрибутивах:
sudo apt-get install tar gcc make g++
на RedHat-подобных дистрибутивах:
sudo yum install tar gcc make
Для установки Microsoft ODBC Driver 17 for SQL Server обратитесь к документации Microsoft. После установки драйвера создайте символьную ссылку для платформы с помощью команд:
cd /opt/foresight/fp10.x-biserver/bin
sudo ln -s
/opt/microsoft/msodbcsql/lib64/libmsodbcsql-17.0.so.2270.0 libmsodbcsql-17.0.so
Примечание. Расположение и версия библиотек может отличаться от указанных в команде.
Если ранее был установлен драйвер 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.
Процесс установки диспетчера драйверов описан в статье «Установка диспетчера драйверов».
Примечание. Не рекомендуется использовать флаг SQL_WCHART_CONVERT при сборке unixODBC.
Для подготовки и установки ODBC драйвера:
Убедитесь, что архив с ODBC драйвером распакован.
Измените файлы:
build_dm.sh:
замените строку (только для Astra Linux):
req_proc="x86_64";
на:
req_proc="unknown";
замените «-xvzf» на «-xvf».
install.sh:
замените строку (только для Astra Linux):
req_proc="x86_64";
на:
req_proc="unknown";
замените строку (только для Debian-подобных дистрибутивов):
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;
}
Скачайте установочный файл ODBC 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.
Установите пакет unixODBC с помощью команд:
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 сочетанием клавиш CTRL+D.
Примечание. Команда «sudo make install» может быть заменена на «sudo checkinstall», если программа checkinstall установлена в ОС.
Проверьте возможность установки ODBC драйвера в системе с помощью команды:
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/fp10.x-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
После выполнения действий повторно проверьте все зависимости драйвера и в случае отсутствия проблем переходите к регистрации. Запись о драйвере будет добавлена в файл 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
Для устранения ошибок на данном этапе обратитесь к администратору СУБД.
После выполнения действий будет подготовлен и установлен драйвер Microsoft ODBC Driver 11 for SQL Server.
См. также: