Microsoft odbc driver for sql server как установить

Обновлено: 06.07.2024

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

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

На Debian-подобных дисрибутивах:

sudo apt-get install tar gcc make g++

На RedHat-подобных дистрибутивах:

sudo yum install tar gcc make

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

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

Установка диспетчера драйверов для Microsoft ODBC Driver 13, 13.1 и 17

Зависимость диспетчера драйверов разрешается автоматически системой управления пакетами при установке Microsoft ODBC Driver 13, 13.1 или 17 for SQL Server в Linux или macOS по инструкциям в следующих статьях.

Установка Microsoft ODBC Driver for SQL Server

Драйвер устанавливается при запуске msodbcsql.msi из одной из загрузок для Windows.

Для тех, кто установил драйвер 17.1.0.1 или ниже, рекомендуется удалить его вручную перед установкой новой версии драйвера.

Параллельно с Native Client

Драйвер можно установить параллельно с SQL Server Native Client. Основные версии драйвера (11, 13, 17) могут быть установлены параллельно друг с другом.

При инициировании msodbcsql.msi по умолчанию устанавливаются только клиентские компоненты. Этими компонентами служат файлы, поддерживающие работу приложения, разработанного с помощью драйвера. Чтобы установить компоненты пакета SDK, укажите в командной строке ADDLOCAL=ALL . Ниже приведен пример.

Лицензия пользователя

Укажите IACCEPTMSODBCSQLLICENSETERMS=YES , чтобы принять условия лицензионного соглашения, если для установки используется параметр /passive , /qn , /qb или /qr . Этот параметр указывается только прописными буквами. Ниже приведен пример.

Удаление без взаимодействия с пользователем

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

Указание зависимость

Если приложение использует драйвер, оно должно указывать, что зависит от драйвера, с помощью параметра установки APPGUID . Это позволяет установщику драйвера вывести сведения о зависимых приложениях перед удалением. Чтобы задать зависимость от драйвера, присвойте параметру командной строки APPGUID код продукта при автоматической установке драйвера. Код продукта необходимо создать при использовании установщика (Майкрософт) для формирования пакета установки приложения. Ниже приведен пример.

Установка диспетчера драйверов для Microsoft ODBC Driver 11 for SQL Server

(SUSE и только в Red Hat Linux).

Использование скрипта установки

Эти инструкции ссылаются на msodbcsql-11.0.2270.0.tar.gz (файл установки для Red Hat Linux). В случае установке предварительной версии для SUSE Linux файл называется msodbcsql-11.0.2260.0.tar.gz .

Порядок установки диспетчера драйверов:

Убедитесь, что у вас есть корневое разрешение.

Перейдите в каталог, куда программа скачивания драйвера ODBC Driver MicrosoftSQL Server поместила файл с именем msodbcsql-11.0.2270.0.tar.gz . Убедитесь в наличии файла *.TAR.GZ, который соответствует вашей версии Linux. Чтобы извлечь файлы, выполните следующую команду: tar xvzf msodbcsql-11.0.2270.0.tar.gz.

Перейдите в каталог msodbcsql-11.0.2270.0 , где должен находиться файл build_dm.sh . Можно запустить build_dm.sh для установки диспетчера драйверов unixODBC.

Чтобы просмотреть список доступных параметров, выполните следующую команду: ./build_dm.sh --help.

Когда все готово к установке, а ваш компьютер имеет доступ к внешнему сайту по протоколу FTP, выполните следующую команду: ./build_dm.sh.

Введите YES, чтобы приступить к распаковке файлов. Эта часть процесса может занять около 5 минут.

После завершения выполнения скрипта следуйте инструкциям на экране, чтобы установить диспетчер драйверов unixODBC

Теперь все готово для установки драйвера. Дополнительные сведения см. в инструкциях по установке драйвера ODBC для Linux или macOS.

Установка вручную

Если скрипту установки не удалось завершить работу, самостоятельно выполните настройку и сборку подходящего диспетчера драйверов.

Удалите все старые установленные версии unixODBC (например, unixODBC 2.2.11). В Red Hat Enterprise Linux 5 или 6 выполните следующую команду: yum remove unixODBC. В SUSE Linux Enterprise zypper удалить unixODBC.

На компьютере Linux выполните команду: tar xvzf unixODBC-2.3.0.tar.gz.

Перейдите в каталог unixODBC-2.3.0.

В командной строке выполните команду: CPPFLAGS="-DSIZEOF_LONG_INT=8" .

В командной строке выполните команду: export CPPFLAGS.

В командной строке выполните команду: "./configure --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc --enable-gui=no --enable-drivers=no --enable-iconv --with-iconv-char-enc=UTF8 --with-iconv-ucode-enc=UTF16LE" .

В командной строке (выполнив вход в корень) выполните команду: make.

В командной строке (выполнив вход в корень) выполните команду: make install.

Теперь все готово для установки драйвера. Дополнительные сведения см. в инструкциях по установке драйвера ODBC для Linux или macOS.

В этой статье объясняется, как установить Microsoft ODBC Driver for SQL Server в Linux. В ней также содержатся инструкции для необязательных средств командной строки для SQL Server ( bcp и sqlcmd ) и заголовков разработки unixODBC.

В этой статье приведены команды для установки драйвера ODBC из оболочки bash. Сведения о том, как загрузить пакеты напрямую, см. в разделе Скачивание драйвера ODBC Driver for SQL Server.

Дальнейшие действия

После установки драйвера можно попробовать пример приложения C++ ODBC. Подробнее о разработке приложений ODBC см. в разделе Разработка приложений.

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

В этой статье обсуждаются драйверы ODBC, подключающиеся к SQL Server.

Предыдущие версии

В следующих разделах приведены инструкции по установке предыдущих версий драйвера Microsoft ODBC в Linux. Рассматриваются следующие версии драйверов.

Поддерживаемые операционные системы

Следующая таблица указывает на поддержку версии драйвера для версий операционной системы Windows:

Операционная система →
↓ Версия драйвера
Windows Server 2019 Windows Server 2016 Windows Server 2012 R2 Windows Server 2012 Windows Server 2008 R2 Windows 10 Windows 8.1 Windows 7 Windows Vista с пакетом обновления 2 (SP2)
17.8 Да Да Да Да Да Да
17,7 Да Да Да Да Да Да
17.6 Да Да Да Да Да Да
17.5 Да Да Да Да Да Да
17.4 Да Да Да Да Да Да Да Да
17.3 Да Да Да Да Да Да Да Да
17.2 Да Да Да Да Да Да Да
17.1 Да Да Да Да Да Да Да
17,0 Да Да Да Да Да Да Да
Версия 13.1 Да Да Да Да Да Да Да
13 Да Да Да Да
11 Да Да Да Да

Программы командной строки: sqlcmd.exe и bcp.exe

Программы командной строки bcp.exe и sqlcmd.exe , которые используются с драйвером, можно загрузить по адресу Microsoft Command Line Utilities 11 для SQL Server, Microsoft Command Line Utilities 13 для SQL Server или Microsoft Command Line Utilities 13.1 для SQL Server. Драйвер является необходимым условием для установки sqlcmd.exe и bcp.exe .

bcp.exe и sqlcmd.exe устанавливаются во вложенную папку 110\Tools в %PROGRAMFILES%\Microsoft SQL Server\Client SDK\ODBC для версии 11, и 130\Tools для 13 и 13.1.

Приложение, использующее функции BCP, должно указывать драйвер из той же версии, которая поставлялась с файлом заголовка и библиотекой, применявшимися при компиляции приложения.

Например, при компиляции приложения ODBC с помощью msodbcsql11.lib и msodbcsql.h используйте "DRIVER=" в строке подключения.

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

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

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

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

Устранение неполадок

Если не удается установить подключение к SQL Server с помощью драйвера ODBC, см. статью, посвященную известным проблемам при устранении неполадок подключения.

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

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

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

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

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

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

libcrypto.so.10 => not found

libssl.so.10 => not found

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

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]

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

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>

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

[ISQL]ERROR: Could not SQLConnect

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

Эта статья содержит инструкции по установке диспетчера драйверов unixODBC для использования со всеми версиями драйвера Microsoft ODBC для SQL Server в Linux и macOS.

Перед установкой диспетчера драйверов unixODBC удалите с компьютера все установленные пакеты диспетчера драйверов. Установка диспетчера драйверов unixODBC может вызвать сбой существующего диспетчера драйверов.

ODBC 13.1

В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13.1 из оболочки bash в различных дистрибутивах Linux.

Debian 8

Red Hat Enterprise Server 6

Red Hat Enterprise Server 7

SUSE Linux Enterprise Server 11

SUSE Linux Enterprise Server 12

Ubuntu 15.10

Ubuntu 16.04

Ubuntu 16.10

Файлы драйвера

Драйвер ODBC в Linux состоит из следующих компонентов.

Примечание. В одной программе нельзя ссылаться на msodbcsql.h и odbcss.h одновременно.

Компоненты Microsoft ODBC Driver for SQL Server в Windows

Драйвер ODBC для Windows состоит из следующих компонентов:

Примечание. В одной программе нельзя сочетать ссылки на msodbcsql.h и odbcss.h.

Примечание. Если вы включаете в программу ссылку на этот файл библиотеки, убедитесь, что этот файл находится в вашем системном пути, а также в системном пути других пользователей, которые используют это приложение.

Совместимость с версиями SQL

Совместимость указывает, что драйвер был протестирован на совместимость с существующими выпусками SQL во время выпуска драйвера. Выпуски SQL Server обычно пытаются поддерживать обратную совместимость с существующими драйверами клиента. Но новые функции в выпусках SQL Server могут быть недоступны для более старых версий клиентских драйверов.

Версия базы данных →
↓ Версия драйвера
База данных SQL Azure Azure Synapse Analytics Управляемый экземпляр SQL Azure SQL Server 2019 SQL Server 2017 SQL Server 2016 SQL Server 2014 SQL Server 2012 SQL Server 2008 R2 SQL Server 2008 SQL Server 2005
17.8 Да Да Да Да Да Да Да Да
17,7 Да Да Да Да Да Да Да Да
17.6 Да Да Да Да Да Да Да Да
17.5 Да Да Да Да Да Да Да Да
17.4 Да Да Да Да Да Да Да Да
17.3 Да Да Да Да Да Да Да Да Да Да
17.2 Да Да Да Да Да Да Да Да Да
17.1 Да Да Да Да Да Да Да Да Да
17,0 Да Да Да Да Да Да Да Да Да
Версия 13.1 Да Да Да Да Да Да
13 Да Да Да Да Да
11 Да Да Да Да Да

Сведения о строке подключения

Имя драйвера, которое следует указывать в строке подключения, — ODBC Driver 11 for SQL Server или ODBC Driver 13 for SQL Server (как для 13, так и для 13.1) или ODBC Driver 17 for SQL Server .

Microsoft ODBC 17

В следующих разделах объясняется, как установить драйвер Microsoft ODBC 17 из оболочки bash в различных дистрибутивах Linux.

Если вы установили пакет msodbcsql версии 17, который был доступен непродолжительное время, его следует удалить перед установкой пакета msodbcsql17 . Это позволит избежать конфликтов. Пакет msodbcsql17 можно установить параллельно с пакетом msodbcsql версии 13.

Alpine Linux

Для поддержки Alpine требуется драйвер версии 17.5 или более поздней.

Debian

Вместо настройки переменной среды ACCEPT_EULA вы можете создать переменную debconf с именем "msodbcsql/ACCEPT_EULA": echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections

Red Hat Enterprise Server и Oracle Linux

SUSE Linux Enterprise Server

Ubuntu

Вместо настройки переменной среды ACCEPT_EULA вы можете создать переменную debconf с именем "msodbcsql/ACCEPT_EULA": echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections

ODBC 13

В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13 из оболочки bash в различных дистрибутивах Linux.

Red Hat Enterprise Server 6 (ODBC 13)

Red Hat Enterprise Server 7 (ODBC 13)

Ubuntu 15.10 (ODBC 13)

Ubuntu 16.04 (ODBC 13)

SUSE Linux Enterprise Server 12 (ODBC 13)

Автономная установка

Если необходимо установить драйвер Microsoft ODBC версии 13 на компьютере без подключения к Интернету, потребуется разрешить зависимости пакетов вручную. Драйвер Microsoft ODBC версии 13 имеет следующие прямые зависимости:

  • Ubuntu: libc6 (>= 2.21), libstdc++6 (>= 4.9), libkrb5-3, libcurl3, openssl, debconf (>= 0.5), unixodbc (>= 2.3.1-1)
  • Red Hat: glibc, e2fsprogs, krb5-libs, openssl, unixODBC
  • SUSE: glibc, libuuid1, krb5, openssl, unixODBC

Каждый из этих пакетов, в свою очередь, имеет собственные зависимости, которые могут отсутствовать в системе. Для решения этой проблемы в общем случае следует обратиться к документации по диспетчеру пакетов используемого дистрибутива: Red Hat, Ubuntu и SUSE

Другое распространенное решение — вручную скачать все зависимые пакеты в одну папку на компьютере установки, а затем вручную установить каждый пакет по очереди, завершив пакетом драйвера Microsoft ODBC версии 13.

Red Hat Linux Enterprise Server 7

Ubuntu 16.04 (ODBC 13 в автономном режиме)

SUSE Linux Enterprise Server 12 (ODBC 13 в автономном режиме)

После установки пакета можно проверить, находит ли драйвер Microsoft ODBC версии 13 все нужные зависимости. Для этого выполните команду ldd и проверьте наличие отсутствующих библиотек в выходных данных:

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

После распаковки архива с драйвером и перед установкой, прежде всего необходимо внести изменения в файлы «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». Данная функция должна выглядеть следующим образом:

log "Checking that required libraries are installed"

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

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

Скачайте установочный файл ODBC 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 с помощью команды:

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

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

После этого выйти из-под пользователя root сочетанием клавиш «CTRL+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

ODBC 11

В следующих разделах объясняется, как установить Microsoft ODBC Driver 11 в Linux. Для использования драйвера сначала установите диспетчер драйверов unixODBC. Дополнительные сведения: Установка диспетчера драйверов.

Процесс установки

Эти инструкции ссылаются на msodbcsql-11.0.2270.0.tar.gz (файл установки для Red Hat Linux). В случае установке предварительной версии для SUSE Linux файл называется msodbcsql-11.0.2260.0.tar.gz .

Порядок установки драйвера

Убедитесь, что у вас есть корневое разрешение.

Перейдите в каталог, куда был скачан файл с именем msodbcsql-11.0.2270.0.tar.gz . Убедитесь в наличии файла *.TAR.GZ, который соответствует вашей версии Linux. Чтобы извлечь файлы, выполните следующую команду: tar xvzf msodbcsql-11.0.2270.0.tar.gz .

Перейдите в каталог msodbcsql-11.0.2270.0 , где должен находиться файл install.sh.

Чтобы просмотреть список доступных параметров установки, выполните следующую команду: ./install.sh.

Перед установкой драйвера выполните следующую команду: ./install.sh verify . Выходные данные команды ./install.sh verify показывают, есть ли на компьютере ПО, необходимое для поддержки драйвера ODBC на Linux.

Когда вы будете готовы установить драйвер ODBC на Linux, выполните команду: ./install.sh install . Если вам нужно будет дополнительно указать команду установки ( bin-dir или lib-dir ), сделайте это после параметра install.

После просмотра лицензионного соглашения введите YES для продолжения установки.

При установке драйвер помещается в папку /opt/microsoft/msodbcsql/11.0.2270.0 . Драйвер и его вспомогательные файлы должны находиться в папке /opt/microsoft/msodbcsql/11.0.2270.0 .

Удаление

Вы можете удалить драйвер ODBC 11 на Linux, выполнив следующие команды:

rm -f /usr/bin/sqlcmd

rm -rf /opt/microsoft/msodbcsql

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

Загрузка файла ресурсов

Для работы драйверу необходимо загрузить файл ресурсов. Этот файл имеет имя msodbcsqlr17.rll или msodbcsqlr13.rll в зависимости от версии драйвера. Файл .rll располагается по пути относительно расположения самого драйвера ( so или dylib ), указанного в таблице выше. Кроме того, начиная с версии 17.1 драйвер пытается загрузить файл .rll из каталога по умолчанию, если его не удалось загрузить по относительному пути. Путь к файлу ресурсов по умолчанию в Linux: /opt/microsoft/msodbcsql17/share/resources/en_US/ .

Читайте также: