Установка Microsoft ODBC Driver for SQL Server (Linux)
В этой статье объясняется, как установить Microsoft ODBC Driver for SQL Server в Linux. В ней также содержатся инструкции для необязательных средств командной строки для SQL Server (bcp
и sqlcmd
) и заголовков разработки unixODBC.
В этой статье приведены команды для установки драйвера ODBC из оболочки bash. Сведения о том, как загрузить пакеты напрямую, см. в разделе Скачивание драйвера ODBC Driver for SQL Server.
Microsoft ODBC 18
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 18 из оболочки Bash для различных дистрибутивов Linux. Поддерживаемые дистрибутивы: Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES) и Ubuntu. Начиная с версии 18.4, чтобы автоматически принять EULA при установке драйвера, отличного от Alpine Linux (.deb или rpm), можно создать файл "/opt/microsoft/msodbcsql18/ACCEPT_EULA".
case $(uname -m) in
x86_64) architecture="amd64" ;;
arm64) architecture="arm64" ;;
*) architecture="unsupported" ;;
esac
if [[ "unsupported" == "$architecture" ]];
then
echo "Alpine architecture $(uname -m) is not currently supported.";
exit;
fi
#Download the desired package(s)
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/msodbcsql18_18.4.1.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/mssql-tools18_18.4.1.1-1_$architecture.apk
#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/msodbcsql18_18.4.1.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/mssql-tools18_18.4.1.1-1_$architecture.sig
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
gpg --verify msodbcsql18_18.4.1.1-1_$architecture.sig msodbcsql18_18.4.1.1-1_$architecture.apk
gpg --verify mssql-tools18_18.4.1.1-1_$architecture.sig mssql-tools18_18.4.1.1-1_$architecture.apk
#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.4.1.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.4.1.1-1_$architecture.apk
Примечание.
Для поддержки Alpine требуется драйвер версии 17.5 или более поздней.
предыдущих версий
В следующих разделах приведены инструкции по установке предыдущих версий драйвера Microsoft ODBC в Linux. Рассматриваются следующие версии драйверов.
- Microsoft ODBC Driver 17 for SQL Server
- Microsoft ODBC Driver 13.1 for SQL Server
- Microsoft ODBC Driver 13 for SQL Server
- Microsoft ODBC Driver 11 for SQL Server
Microsoft ODBC 17
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 17 из оболочки bash в различных дистрибутивах Linux.
Внимание
Если вы установили пакет msodbcsql
версии 17, который был доступен непродолжительное время, его следует удалить перед установкой пакета msodbcsql17
. Это позволит избежать конфликтов. Пакет msodbcsql17
можно установить параллельно с пакетом msodbcsql
версии 13.
#Download the desired package(s)
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.5.1-1_amd64.apk
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.10.1.1-1_amd64.apk
#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.5.1-1_amd64.sig
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.10.1.1-1_amd64.sig
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
gpg --verify msodbcsql17_17.10.5.1-1_amd64.sig msodbcsql17_17.10.5.1-1_amd64.apk
gpg --verify mssql-tools_17.10.1.1-1_amd64.sig mssql-tools_17.10.1.1-1_amd64.apk
#Install the package(s)
sudo apk add --allow-untrusted msodbcsql17_17.10.5.1-1_amd64.apk
sudo apk add --allow-untrusted mssql-tools_17.10.1.1-1_amd64.apk
Примечание.
Для поддержки Alpine требуется драйвер версии 17.5 или более поздней.
ODBC 13.1
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13.1 из оболочки bash в различных дистрибутивах Linux.
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/debian/8/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev
ODBC 13
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 13 из оболочки bash в различных дистрибутивах Linux.
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
sudo yum update
sudo yum remove unixODBC #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql-13.0.1.0-1 mssql-tools-14.0.2.0-1
sudo yum install unixODBC-utf16-devel #this step is optional but recommended*
#Create symlinks for tools
sudo ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd
sudo ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp
Автономная установка
Если вам нужен драйвер 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 Driver 13.
- RHEL 7 (ODBC 13 в автономном режиме)
- SLES 12 (ODBC 13 в автономном режиме)
- Ubuntu 16.04 (ODBC 13 в автономном режиме)
- Скачайте последнюю версию
msodbcsql
.rpm
с сайта https://packages.microsoft.com/rhel/7/prod/. - Установите зависимости и драйвер.
sudo yum install glibc e2fsprogs krb5-libs openssl unixODBC unixODBC-devel #install dependencies
sudo rpm -i msodbcsql-13.1.X.X-X.x86_64.rpm #install the Driver
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.
Создайте резервную копию odbcinst.ini. Установка драйвера обновляет odbcinst.ini. Файл odbcinst.ini содержит список драйверов, которые зарегистрированы с помощью диспетчера драйверов unixODBC. Чтобы определить на компьютере расположение файла odbcinst.ini, выполните следующую команду:
odbc_config --odbcinstini
.Перед установкой драйвера выполните следующую команду:
./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 в Linux зарегистрирован, выполните следующую команду: odbcinst -q -d -n "ODBC Driver 11 for SQL Server"
.
Удаление
Вы можете удалить драйвер ODBC 11 на Linux, выполнив следующие команды:
rm -f /usr/bin/sqlcmd
rm -f /usr/bin/bcp
rm -rf /opt/microsoft/msodbcsql
odbcinst -u -d -n "ODBC Driver 11 for SQL Server"
Файлы драйвера
Драйвер ODBC в Linux состоит из следующих компонентов.
Компонент | Description |
---|---|
libmsodbcsql-17.X.so.X.X или libmsodbcsql-13.X.so.X.X | Общий объект (so ) файла динамической библиотеки, содержащий все функциональные возможности драйвера. Этот файл устанавливается в папке /opt/microsoft/msodbcsql17/lib64/ для версии 17 драйвера и в папке /opt/microsoft/msodbcsql/lib64/ для версии 13. |
msodbcsqlr17.rll или msodbcsqlr13.rll |
Сопутствующий файл ресурса для библиотеки драйвера. Этот файл устанавливается в папке [driver .so directory]../share/resources/en_US/ . |
msodbcsql.h | Файл заголовка, содержащий все новые определения, необходимые для использования драйвера. Примечание. В одной программе нельзя ссылаться на msodbcsql.h и odbcss.h одновременно. Файл msodbcsql.h устанавливается в папке /opt/microsoft/msodbcsql17/include/ для версии 17 драйвера и в папке /opt/microsoft/msodbcsql/include/ для версии 13. |
LICENSE.txt | Текстовый файл с условиями лицензионного соглашения. Этот файл помещается в папку /usr/share/doc/msodbcsql17/ для версии 17 драйвера и в папку /usr/share/doc/msodbcsql/ для версии 13. |
RELEASE_NOTES | Текстовый файл с заметками о выпуске. Этот файл помещается в папку /usr/share/doc/msodbcsql17/ для версии 17 драйвера и в папку /usr/share/doc/msodbcsql/ для версии 13. |
Загрузка файла ресурсов
Для работы драйверу необходимо загрузить файл ресурсов. Этот файл имеет имя msodbcsqlr17.rll
или msodbcsqlr13.rll
в зависимости от версии драйвера. Расположение .rll
файла относительно расположения самого драйвера (so
или dylib
), как указано в предыдущей таблице. По состоянию на версию 17.1 драйвер также пытается загрузить .rll
из каталога по умолчанию, если загрузка из относительного пути завершается ошибкой. Путь к файлу ресурсов по умолчанию в Linux: /opt/microsoft/msodbcsql17/share/resources/en_US/
.
Устранение неполадок
Если версия драйвера была установлена и зарегистрирована в unixODBC, установка может завершиться ошибкой, например Installation failed, ODBC Driver $1 for SQL Server detected!
. Чтобы устранить проблему, отмените регистрацию этой версии драйвера. Вы можете отменить регистрацию драйверов с помощью odbcinst
команды: odbcinst -u -d -n "ODBC Driver $1 for SQL Server
(Замените $1
версию драйвера, сообщаемую в ошибке установки.) Если удаление с помощью odbcinst
команды завершается ошибкой, вы можете вручную удалить разделы драйверов из odbcinst.ini
файла. Расположение odbcinst.ini
файла можно найти с помощью команды odbcinst -j
.
Если не удается установить подключение к SQL Server с помощью драйвера ODBC, см. статью, посвященную известным проблемам при устранении неполадок подключения.