Подготовка 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 ODBC Driver 17 for SQL Server

Для установки 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 ODBC Driver 11 for SQL Server

Если ранее был установлен драйвер 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 драйвера:

  1. Убедитесь, что архив с ODBC драйвером распакован.

  2. Измените файлы:

req_proc="x86_64";

на:

req_proc="unknown";

req_proc="x86_64";

на:

req_proc="unknown";

req_libs=( glibc e2fsprogs krb5-libs openssl )

на:

req_libs=( libc6 e2fsprogs libkrb5-3 openssl )

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;

}

  1. Скачайте установочный файл 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.

  1. Установите пакет 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 установлена в ОС.

  1. Проверьте возможность установки 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

  1. Создайте символьную ссылку для платформы с помощью команд:

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

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

  1. Убедитесь, что отсутствуют проблемы с разделяемыми библиотеками, с помощью команды:

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.

  1. Зарегистрируйте драйвер вручную с помощью команды:

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

  1. Проверьте правильность установки драйвера с помощью команды:

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

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

  1. Проверьте подключение к серверу. Для этого используйте подключение с применением telnet:

telnet 192.168.1.1 1433

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

telnet: Unable to connect to remote host: Connection refused

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

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

Connected to 192.168.1.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.

См. также:

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