Установка Microsoft ODBC Driver for SQL Server на Linux и macOSInstalling the Microsoft ODBC Driver for SQL Server on Linux and macOS

СкачатьСкачать драйвер ODBCDownloadDownload ODBC Driver

В этой статье описывается, как установить драйвер MicrosoftMicrosoft ODBC Driver for SQL ServerSQL Server в Linux и macOS, а также как использовать необязательные программы командной строки для SQL Server (bcp и sqlcmd) и заголовки разработки unixODBC.This article explains how to install the MicrosoftMicrosoft ODBC Driver for SQL ServerSQL Server on Linux and macOS, as well as the optional Command-Line Tools for SQL Server (bcp and sqlcmd) and the unixODBC Development Headers.

Microsoft ODBC Driver for SQL Server версии 17Microsoft ODBC Driver 17 for SQL Server

Важно!

Если вы установили пакет msodbcsql версии 17, который был доступен непродолжительное время, его следует удалить перед установкой пакета msodbcsql17.If you installed the v17 msodbcsql package that was briefly available, you should remove it before installing the msodbcsql17 package. Это позволит избежать конфликтов.This will avoid conflicts. Пакет msodbcsql17 можно установить параллельно с пакетом msodbcsql версии 13.The msodbcsql17 package can be installed side by side with the msodbcsql v13 package.

DebianDebian

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#Debian 8
curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Debian 9
curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Debian 10
curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

RedHat Enterprise ServerRedHat Enterprise Server

sudo su

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#RedHat Enterprise Server 6
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo

#RedHat Enterprise Server 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo

#RedHat Enterprise Server 8
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssql-release.repo

exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel

SUSE Linux Enterprise ServerSUSE Linux Enterprise Server

sudo su

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#SUSE Linux Enterprise Server 11 SP4
#Ensure SUSE Linux Enterprise 11 Security Module has been installed 
zypper ar https://packages.microsoft.com/config/sles/11/prod.repo

#SUSE Linux Enterprise Server 12
zypper ar https://packages.microsoft.com/config/sles/12/prod.repo

#SUSE Linux Enterprise Server 15
zypper ar https://packages.microsoft.com/config/sles/15/prod.repo
#(Only for driver 17.3 and below)
SUSEConnect -p sle-module-legacy/15/x86_64

exit
sudo ACCEPT_EULA=Y zypper install msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y zypper install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo zypper install unixODBC-devel

UbuntuUbuntu

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#Download appropriate package for the OS version
#Choose only ONE of the following, corresponding to your OS version

#Ubuntu 14.04
curl https://packages.microsoft.com/config/ubuntu/14.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 16.04
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 18.04
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 18.10
curl https://packages.microsoft.com/config/ubuntu/18.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

#Ubuntu 19.04
curl https://packages.microsoft.com/config/ubuntu/19.04/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

Примечание

  • Для поддержки Ubuntu 18.04 требуется драйвер версии 17.2 или более поздней.Driver version 17.2 or higher is required for Ubuntu 18.04 support.
  • Для поддержки Ubuntu 18.10 требуется драйвер версии 17.3 или более поздней.Driver version 17.3 or higher is required for Ubuntu 18.10 support.

MacOSMacOS

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install msodbcsql17 mssql-tools

Microsoft ODBC Driver for SQL Server версии 13.1Microsoft ODBC Driver 13.1 for SQL Server

Debian 8Debian 8

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
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"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

RedHat Enterprise Server 6RedHat Enterprise Server 6

sudo su
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel

RedHat Enterprise Server 7RedHat Enterprise Server 7

sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel

SUSE Linux Enterprise Server 11SUSE Linux Enterprise Server 11

sudo su
zypper ar https://packages.microsoft.com/config/sles/11/prod.repo
exit
sudo ACCEPT_EULA=Y zypper install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y zypper install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo zypper install unixODBC-devel

SUSE Linux Enterprise Server 12SUSE Linux Enterprise Server 12

sudo su
zypper ar https://packages.microsoft.com/config/sles/12/prod.repo
exit
sudo ACCEPT_EULA=Y zypper install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y zypper install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo zypper install unixODBC-devel

Ubuntu 15.10Ubuntu 15.10

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/15.10/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
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"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

Ubuntu 16.04Ubuntu 16.04

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
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"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

Ubuntu 16.10Ubuntu 16.10

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.10/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
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"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev

OS X 10.11 (El Capitan) и macOS 10.12 (Sierra)OS X 10.11 (El Capitan) and macOS 10.12 (Sierra)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
brew install msodbcsql@13.1.9.2 mssql-tools@14.0.6.0

Microsoft ODBC Driver for SQL Server версии 13Microsoft ODBC Driver 13 for SQL Server

RedHat Enterprise Server 6RedHat Enterprise Server 6

sudo su
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
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
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd 
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

RedHat Enterprise Server 7RedHat Enterprise Server 7

sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
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
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd 
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

Ubuntu 15.10Ubuntu 15.10

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/15.10/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1
sudo apt-get install unixodbc-dev-utf16 #this step is optional but recommended*
#Create symlinks for tools
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd 
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

Ubuntu 16.04Ubuntu 16.04

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1
sudo apt-get install unixodbc-dev-utf16 #this step is optional but recommended*
#Create symlinks for tools
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd 
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

SUSE Linux Enterprise Server 12SUSE Linux Enterprise Server 12

sudo su 
zypper ar https://packages.microsoft.com/config/sles/12/prod.repo 
zypper update 
sudo ACCEPT_EULA=Y zypper install msodbcsql-13.0.1.0-1 mssql-tools-14.0.2.0-1
zypper install unixODBC-utf16-devel
#Create symlinks for tools
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd 
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp

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

Если необходимо установить драйвер MicrosoftMicrosoft ODBC версии 13 на компьютере без подключения к Интернету, потребуется разрешить зависимости пакетов вручную.If you prefer/require the MicrosoftMicrosoft ODBC Driver 13 to be installed on a computer with no internet connection, you will need to resolve package dependencies manually. Драйвер MicrosoftMicrosoft ODBC версии 13 имеет следующие прямые зависимости:The MicrosoftMicrosoft ODBC Driver 13 has the following direct dependencies:

  • Ubuntu: libc6 (>= 2.21), libstdc++6 (>= 4.9), libkrb5-3, libcurl3, openssl, debconf (>= 0.5), unixodbc (>= 2.3.1-1)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, unixODBCRed Hat: glibc, e2fsprogs, krb5-libs, openssl, unixODBC
  • SuSE: glibc, libuuid1, krb5, openssl, unixODBCSuSE: glibc, libuuid1, krb5, openssl, unixODBC

Каждый из этих пакетов, в свою очередь, имеет собственные зависимости, которые могут отсутствовать в системе.Each of these packages in turn has their own dependencies, which may or may not be present on the system. Для решения этой проблемы в общем случае следует обратиться к документации по диспетчеру пакетов используемого дистрибутива: Redhat, Ubuntu и SUSEFor a general solution to this issue, refer to your distribution's package manager documentation: Redhat, Ubuntu, and SUSE

Другое распространенное решение — вручную скачать все зависимые пакеты в одну папку на компьютере установки, а затем вручную установить каждый пакет по очереди, завершив пакетом драйвера MicrosoftMicrosoft ODBC версии 13.It is also common to manually download all the dependent packages and place them together on the installation computer, then manually install each package in turn, finishing with the MicrosoftMicrosoft ODBC Driver 13 package.

Redhat Linux Enterprise Server 7Redhat Linux Enterprise Server 7

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

Ubuntu 16.04Ubuntu 16.04

sudo apt-get install libc6 libstdc++6 libkrb5-3 libcurl3 openssl debconf unixodbc unixodbc-dev #install dependencies
sudo dpkg -i msodbcsql_13.1.X.X-X_amd64.deb #install the Driver

SUSE Linux Enterprise Server 12SUSE Linux Enterprise Server 12

zypper install glibc, libuuid1, krb5, openssl, unixODBC unixODBC-devel #install dependencies
sudo rpm -i  msodbcsql-13.1.X.X-X.x86_64.rpm #install the Driver

Завершив установку пакета, можно проверить, находит ли драйвер MicrosoftMicrosoft ODBC версии 13 все нужные зависимости. Для этого выполните команду ldd и проверьте наличие отсутствующих библиотек в выходных данных:Once you have completed the package installation, you can verify that the MicrosoftMicrosoft ODBC Driver 13 can find all its dependencies by running ldd and inspecting its output for missing libraries:

ldd /opt/microsoft/msodbcsql/lib64/libmsodbcsql-*

Microsoft ODBC Driver for SQL Server версии 11 на LinuxMicrosoft ODBC Driver 11 for SQL Server on Linux

Для использования драйвера сначала установите диспетчер драйверов unixODBC.Before you can use the driver, install the unixODBC driver manager. Дополнительные сведения: Установка диспетчера драйверов.For more information, see Installing the Driver Manager.

Действия по установкеInstallation Steps

Важно!

Эти инструкции ссылаются на msodbcsql-11.0.2270.0.tar.gz (файл установки для Red Hat Linux).These instructions refer to msodbcsql-11.0.2270.0.tar.gz, which is installation file for Red Hat Linux. В случае установке предварительной версии для SUSE Linux файл называется msodbcsql-11.0.2260.0.tar.gz.If you are installing the Preview for SUSE Linux, the file name is msodbcsql-11.0.2260.0.tar.gz.

Порядок установки драйвераTo install the driver:

  1. Убедитесь, что у вас есть корневое разрешение.Make sure that you have root permission.

  2. Перейдите в каталог, куда был скачан файл с именем msodbcsql-11.0.2270.0.tar.gz.Change to the directory where the download placed the file msodbcsql-11.0.2270.0.tar.gz. Убедитесь в наличии файла *.TAR.GZ, который соответствует вашей версии Linux.Make sure that you have the *.tar.gz file that matches your version of Linux. Чтобы извлечь файлы, выполните следующую команду: tar xvzf msodbcsql-11.0.2270.0.tar.gz.To extract the files, execute the following command, tar xvzf msodbcsql-11.0.2270.0.tar.gz.

  3. Перейдите в каталог msodbcsql-11.0.2270.0, где должен находиться файл install.sh.Change to the msodbcsql-11.0.2270.0 directory and there you should see a file called install.sh.

  4. Чтобы просмотреть список доступных параметров установки, выполните следующую команду: ./install.sh.To see a list of the available installation options, execute the following command: ./install.sh.

  5. Создайте резервную копию odbcinst.ini.Make a backup of odbcinst.ini. Установка драйвера обновляет odbcinst.ini.The driver installation updates odbcinst.ini. Файл odbcinst.ini содержит список драйверов, которые зарегистрированы с помощью диспетчера драйверов unixODBC.odbcinst.ini contains the list of drivers that are registered with the unixODBC Driver Manager. Чтобы определить на компьютере расположение файла odbcinst.ini, выполните следующую команду: odbc_config --odbcinstini.To discover the location of odbcinst.ini on your computer, execute the following command: odbc_config --odbcinstini.

  6. Перед установкой драйвера выполните следующую команду: ./install.sh verify.Before you install the driver, execute the following command: ./install.sh verify. Выходные данные команды ./install.sh verify показывают, есть ли на компьютере ПО, необходимое для поддержки драйвера ODBC на Linux.The output of ./install.sh verify reports if your computer has the required software to support the ODBC driver on Linux.

  7. Когда вы будете готовы установить драйвер ODBC на Linux, выполните команду: ./install.sh install.When you are ready to install the ODBC driver on Linux, execute the command: ./install.sh install. Если вам нужно будет дополнительно указать команду установки (bin-dir или lib-dir), сделайте это после параметра install.If you need to specify an install command (bin-dir or lib-dir), specify the command after the install option.

  8. После просмотра лицензионного соглашения введите YES для продолжения установки.After reviewing the license agreement, type YES to continue with the installation.

При установке драйвер помещается в папку /opt/microsoft/msodbcsql/11.0.2270.0.Installation puts the driver in /opt/microsoft/msodbcsql/11.0.2270.0. Драйвер и его вспомогательные файлы должны находиться в папке /opt/microsoft/msodbcsql/11.0.2270.0.The driver and its support files must be in /opt/microsoft/msodbcsql/11.0.2270.0.

Для проверки, что драйвер ODBC в Linux зарегистрирован, выполните следующую команду: odbcinst -q -d -n "ODBC Driver 11 for SQL Server".To verify that the Microsoft ODBC driver on Linux was registered successfully, execute the following command: odbcinst -q -d -n "ODBC Driver 11 for SQL Server".

В статьеИспользование существующих примеров MSDN C++ ODBC для драйвера ODBC в Linux показан пример кода, который подключается к SQL ServerSQL Server с помощью драйвера ODBC в Linux.Use Existing MSDN C++ ODBC Samples for the ODBC Driver on Linux shows a code sample that connects to SQL ServerSQL Server using the ODBC driver on Linux.

УдалениеUninstalling

Вы можете удалить драйвер ODBC 11 на Linux, выполнив следующие команды:You can uninstall the ODBC driver 11 on Linux by executing the following commands:

  1. rm -f /usr/bin/sqlcmd

  2. rm -f /usr/bin/bcp

  3. rm -rf /opt/microsoft/msodbcsql

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

Устранение неполадок с соединениямиTroubleshooting Connection Problems

Если установить подключение к SQL ServerSQL Server с помощью драйвера ODBC не удается, следующие сведения помогут вам определить проблему.If you are unable to make a connection to SQL ServerSQL Server using the ODBC driver, use the following information to identify the problem.

Наиболее распространенная проблема подключения связана с наличием двух установленных копий диспетчера драйверов UnixODBC.The most common connection problem is to have two copies of the UnixODBC Driver Manager installed. Поищите libodbc*.so*в /usr.Search /usr for libodbc*.so*. Если отображается более одной версии файла, (возможно) установлено несколько диспетчеров драйверов.If you see more than one version of the file, you (possibly) have more than one driver manager installed. Приложение может использовать неправильную версию.Your application might use the wrong version.

Включите журнал соединений, добавив в файл /etc/odbcinst.ini раздел со следующими элементами:Enable the connection log by editing your /etc/odbcinst.ini file to contain the following section with these items:

[ODBC]
Trace = Yes
TraceFile = (path to log file, or /dev/stdout to output directly to the terminal)

Если возникает другой сбой подключения и файл журнала отсутствует, (возможно) на компьютере присутствуют две копии диспетчера драйверов.If you get another connection failure and do not see a log file, there (possibly) are two copies of the driver manager on your computer. В противном случае выходные данные журнала должны быть аналогичны следующему:Otherwise, the log output should be similar to the following:

[ODBC][28783][1321576347.077780][SQLDriverConnectW.c][290]  
        Entry:  
            Connection = 0x17c858e0  
            Window Hdl = (nil)  
            Str In = [DRIVER={ODBC Driver 13 for SQL Server};SERVER={contoso.com};Trusted_Connection={YES};WSID={mydb.contoso.com};AP...][length = 139 (SQL_NTS)]  
            Str Out = (nil)  
            Str Out Max = 0  
            Str Out Ptr = (nil)  
            Completion = 0  
        UNICODE Using encoding ASCII 'UTF8' and UNICODE 'UTF16LE'  

В случае если кодировка символов ASCII отличается от UTF-8, например:If the ASCII character encoding is not UTF-8, for example:

UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'  

Существует более одного установленного диспетчера драйверов, и приложение использует не тот диспетчер, либо сборка диспетчера драйверов была выполнена неправильно.There is more than one Driver Manager installed and your application is using the wrong one, or the Driver Manager was not built correctly.

Дополнительные сведения об устранении неполадок подключения см. в статьях:For more information about resolving connection failures, see:

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

Драйвер ODBC в Linux и MacOS состоит из следующих компонентов:The ODBC Driver on Linux and MacOS consists of the following components:

LinuxLinux

КомпонентComponent ОписаниеDescription
libmsodbcsql-17.X.so.X.X или libmsodbcsql-13.X.so.X.Xlibmsodbcsql-17.X.so.X.X or libmsodbcsql-13.X.so.X.X Общий объект (so) файла динамической библиотеки, содержащий все функциональные возможности драйвера.The shared object (so) dynamic library file that contains all of the driver's functionality. Этот файл устанавливается в папке /opt/microsoft/msodbcsql17/lib64/ для версии 17 драйвера и в папке /opt/microsoft/msodbcsql/lib64/ для версии 13.This file is installed in /opt/microsoft/msodbcsql17/lib64/ for the Driver 17 and in /opt/microsoft/msodbcsql/lib64/ for Driver 13.
msodbcsqlr17.rll либо msodbcsqlr13.rllmsodbcsqlr17.rll or msodbcsqlr13.rll Сопутствующий файл ресурса для библиотеки драйвера.The accompanying resource file for the driver library. Этот файл устанавливается в папке [driver .so directory]../share/resources/en_US/.This file is installed in [driver .so directory]../share/resources/en_US/
msodbcsql.hmsodbcsql.h Файл заголовка, содержащий все новые определения, необходимые для использования драйвера.The header file that contains all of the new definitions needed to use the driver.

Примечание . Нельзя сослаться на msodbcsql.h и odbcss.h в одной программе.Note: You cannot reference msodbcsql.h and odbcss.h in the same program.

Файл msodbcsql.h устанавливается в папке /opt/microsoft/msodbcsql17/include/ для версии 17 драйвера и в папке /opt/microsoft/msodbcsql/include/ для версии 13.msodbcsql.h is installed in /opt/microsoft/msodbcsql17/include/ for Driver 17 and in /opt/microsoft/msodbcsql/include/ for Driver 13.
LICENSE.txtLICENSE.txt Текстовый файл с условиями лицензионного соглашения.The text file that contains the terms of the End-User License Agreement. Этот файл помещается в папку /usr/share/doc/msodbcsql17/ для версии 17 драйвера и в папку /usr/share/doc/msodbcsql/ для версии 13.This file is placed in /usr/share/doc/msodbcsql17/ for Driver 17 and in /usr/share/doc/msodbcsql/ for Driver 13.
RELEASE_NOTESRELEASE_NOTES Текстовый файл с заметками о выпуске.The text file that contains release notes. Этот файл помещается в папку /usr/share/doc/msodbcsql17/ для версии 17 драйвера и в папку /usr/share/doc/msodbcsql/ для версии 13.This file is placed in /usr/share/doc/msodbcsql17/ for Driver 17 and in /usr/share/doc/msodbcsql/ for Driver 13.

MacOSMacOS

КомпонентComponent ОписаниеDescription
libmsodbcsql.17.dylib или libmsodbcsql.13.dyliblibmsodbcsql.17.dylib or libmsodbcsql.13.dylib Файл динамической библиотеки (dylib), содержащий все функциональные возможности драйвера.The dynamic library (dylib) file that contains all of the driver's functionality. Этот файл устанавливается в папке /usr/local/lib/.This file is installed in /usr/local/lib/.
msodbcsqlr17.rll либо msodbcsqlr13.rllmsodbcsqlr17.rll or msodbcsqlr13.rll Сопутствующий файл ресурса для библиотеки драйвера.The accompanying resource file for the driver library. Этот файл устанавливается в папке [driver .dylib directory]../share/msodbcsql17/resources/en_US/ для версии 17 драйвера и в папке [driver .dylib directory]../share/msodbcsql/resources/en_US/ для версии 13.This file is installed in [driver .dylib directory]../share/msodbcsql17/resources/en_US/ for Driver 17 and in [driver .dylib directory]../share/msodbcsql/resources/en_US/ for Driver 13.
msodbcsql.hmsodbcsql.h Файл заголовка, содержащий все новые определения, необходимые для использования драйвера.The header file that contains all of the new definitions needed to use the driver.

Примечание . Нельзя сослаться на msodbcsql.h и odbcss.h в одной программе.Note: You cannot reference msodbcsql.h and odbcss.h in the same program.

Файл msodbcsql.h устанавливается в папке /usr/local/include/msodbcsql17/ для версии 17 драйвера и в папке /usr/local/include/msodbcsql/ для версии 13.msodbcsql.h is installed in /usr/local/include/msodbcsql17/ for Driver 17 and in /usr/local/include/msodbcsql/ for Driver 13.
LICENSE.txtLICENSE.txt Текстовый файл с условиями лицензионного соглашения.The text file that contains the terms of the End-User License Agreement. Этот файл помещается в папку /usr/local/share/doc/msodbcsql17/ для версии 17 драйвера и в папку /usr/local/share/doc/msodbcsql/ для версии 13.This file is placed in /usr/local/share/doc/msodbcsql17/ for Driver 17 and in /usr/local/share/doc/msodbcsql/ for Driver 13.
RELEASE_NOTESRELEASE_NOTES Текстовый файл с заметками о выпуске.The text file that contains release notes. Этот файл помещается в папку /usr/local/share/doc/msodbcsql17/ для версии 17 драйвера и в папку /usr/local/share/doc/msodbcsql/ для версии 13.This file is placed in /usr/local/share/doc/msodbcsql17/ for Driver 17 and in /usr/local/share/doc/msodbcsql/ for Driver 13.

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

Чтобы драйвер работал, он должен загрузить файл ресурсов.The driver needs to load the resource file in order to function. Этот файл имеет имя msodbcsqlr17.rll или msodbcsqlr13.rll в зависимости от версии драйвера.This file is called msodbcsqlr17.rll or msodbcsqlr13.rll depending on the driver version. Файл .rll располагается по пути относительно расположения самого драйвера (so или dylib), указанного в таблице выше.The location of the .rll file is relative to the location of the driver itself (so or dylib), as noted in the table above. Кроме того, начиная с версии 17.1 драйвер пытается загрузить файл .rll из каталога по умолчанию, если его не удалось загрузить по относительному пути.As of version 17.1 the driver will also attempt to load the .rll from the default directory if loading from the relative path fails. Пути по умолчанию к файлу ресурсов:The default resource file paths are:

Linux: /opt/microsoft/msodbcsql17/share/resources/en_US/Linux: /opt/microsoft/msodbcsql17/share/resources/en_US/

MacOS: /usr/local/share/msodbcsql17/resources/en_US/MacOS: /usr/local/share/msodbcsql17/resources/en_US/

См. также:See Also

Установка диспетчера драйверовInstalling the Driver Manager

Заметки о выпускеRelease Notes

Требования к системеSystem Requirements