Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как установить Microsoft ODBC Driver for SQL Server в Linux. В ней также содержатся инструкции для необязательных средств командной строки для SQL Server (bcp и sqlcmd) и заголовков разработки unixODBC.
В этой статье приведены команды для установки драйвера ODBC из оболочки bash. Если вы хотите скачать пакеты напрямую, см. раздел "Скачать драйвер ODBC для 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 и Azure Linux. Начиная с версии 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/0b3d5518-b4a7-4a2b-afc7-7ee9e967f93c/msodbcsql18_18.6.2.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/cad0d30f-b9b1-4765-a011-81d8a66c8b8d/mssql-tools18_18.6.2.1-1_$architecture.apk
#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/0b3d5518-b4a7-4a2b-afc7-7ee9e967f93c/msodbcsql18_18.6.2.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/cad0d30f-b9b1-4765-a011-81d8a66c8b8d/mssql-tools18_18.6.2.1-1_$architecture.sig
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
gpg --verify msodbcsql18_18.6.2.1-1_$architecture.sig msodbcsql18_18.6.2.1-1_$architecture.apk
gpg --verify mssql-tools18_18.6.2.1-1_$architecture.sig mssql-tools18_18.6.2.1-1_$architecture.apk
#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.6.2.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.6.2.1-1_$architecture.apk
Примечание.
Для поддержки Alpine требуется драйвер версии 17.5 или более поздней.
Предыдущие версии
В следующих разделах приведены инструкции по установке предыдущих версий драйвера Microsoft ODBC в Linux. Рассматриваются следующие версии драйверов.
- Драйвер Microsoft ODBC 17 для SQL Server
- Драйвер Microsoft ODBC 13.1 для SQL Server
- Драйвер Microsoft ODBC 13 для SQL Server
- Драйвер Microsoft ODBC 11 для SQL Server
Microsoft ODBC 17
В следующих разделах объясняется, как установить драйвер Microsoft ODBC 17 из оболочки bash в различных дистрибутивах Linux.
Внимание
Если вы установили пакет версии 17 msodbcsql , который был кратко доступен, удалите его перед установкой 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.6.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.6.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.6.1-1_amd64.sig msodbcsql17_17.10.6.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.6.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.
if ! [[ "8" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "Debian $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
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.
if ! [[ "6 7" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "RHEL $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/rhel/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo yum install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
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
Автономная установка для 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, ,e2fsprogskrb5-libs,opensslunixODBC - 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пакет из 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
ОДБК 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.
Порядок установки драйвера
Убедитесь, что у вас есть корневое разрешение.
Скачайте драйвер.
Распределение Driver SHA256-хэш Red Hat 5 msodbcsql-11.0.2270.0.tar.gz 178280daf01a49b8322cd902b6440979adacd594c01cd2a1f081dda23dbfb343 Red Hat 6 msodbcsql-11.0.2270.0.tar.gz e9b6bd33d174c7753b3a3f2d541713fbc156b46254484a169caa3f459dd828f7 SUSE Linux msodbcsql-11.0.2260.0.tar.gz 86d1c5842be4f0095234a9455e18a04fdf4cc7960ec0255b37258112e2391ef5 Перейдите в каталог, куда был скачан файл с именем
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.
Чтобы убедиться, что драйвер Microsoft 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 включает следующие компоненты:
| Компонент | Описание |
|---|---|
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 в той же программе.Путь установки составляет /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 из относительного пути, он также пытается загрузить файл .rll из каталога по умолчанию. Путь к файлу ресурсов по умолчанию в Linux: /opt/microsoft/msodbcsql17/share/resources/en_US/.
Устранение неполадок
Конфликт версий предыдущего драйвера
Если вы ранее установили и зарегистрировали версию драйвера в unixODBC, установка может завершиться ошибкой, аналогичной следующей:
Installation failed, ODBC Driver $1 for SQL Server detected!
Чтобы устранить проблему, отмените регистрацию этой версии драйвера с помощью odbcinst команды. Замените $1 на версию драйвера, указанную в ошибке установки.
odbcinst -u -d -n "ODBC Driver $1 for SQL Server"
Если удаление с помощью odbcinst команды завершается ошибкой, вы можете вручную удалить разделы драйверов из odbcinst.ini файла. Расположение odbcinst.ini файла можно найти с помощью команды odbcinst -j.
Ошибки загрузки пакетов в Debian и Ubuntu
В дистрибутивах на основе Debian при установке packages-microsoft-prod.deb пакета может появиться следующая ошибка:
dpkg-deb: error: 'packages-microsoft-prod.deb' is not a Debian format archive
Эта ошибка обычно означает, что скачанный файл поврежден или неполный, часто вызван прерыванием сети или проблемой прокси-сервера. Чтобы устранить эту проблему, выполните следующие действия.
Удалите поврежденный файл и снова скачайте его. Для Ubuntu:
rm packages-microsoft-prod.deb curl -sSL -O https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.debДля Debian замените
ubuntuи используйте только основной номер версии:rm packages-microsoft-prod.deb curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.debУбедитесь, что скачивание является допустимым пакетом Debian (выходные данные должны включать
Debian binary package):file packages-microsoft-prod.debЕсли скачивание снова не удается, проверьте параметры сетевого подключения и прокси-сервера или используйте
wgetвместоcurl.wget https://packages.microsoft.com/config/ubuntu/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2)/packages-microsoft-prod.deb
Проблемы с подключением
Если вы не можете подключиться к SQL Server с помощью драйвера ODBC, ознакомьтесь с известными проблемами, связанными с устранением неполадок подключения.