Install the Microsoft ODBC driver for SQL Server (Linux)
This article explains how to install the Microsoft ODBC Driver for SQL Server on Linux. It also includes instructions for the optional command-line tools for SQL Server (
sqlcmd) and the unixODBC development headers.
This article provides commands for installing the ODBC driver from the bash shell. If you want to download the packages directly, see Download ODBC Driver for SQL Server.
Microsoft ODBC 18
The following sections explain how to install the Microsoft ODBC driver 18 from the bash shell for different Linux distributions. Supported distributions are Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES), and Ubuntu.
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/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_188.8.131.52-1_$architecture.apk curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/mssql-tools18_184.108.40.206-1_$architecture.apk #(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg': curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_220.127.116.11-1_$architecture.sig curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/mssql-tools18_18.104.22.168-1_$architecture.sig curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import - gpg --verify msodbcsql18_22.214.171.124-1_$architecture.sig msodbcsql18_126.96.36.199-1_$architecture.apk gpg --verify mssql-tools18_188.8.131.52-1_$architecture.sig mssql-tools18_184.108.40.206-1_$architecture.apk #Install the package(s) sudo apk add --allow-untrusted msodbcsql18_220.127.116.11-1_$architecture.apk sudo apk add --allow-untrusted mssql-tools18_18.104.22.168-1_$architecture.apk
Driver version 17.5 or higher is required for Alpine support.
The following sections provide instructions for installing previous versions of the Microsoft ODBC driver on Linux. The following driver versions are covered:
- 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
The following sections explain how to install the Microsoft ODBC driver 17 from the bash shell for different Linux distributions.
If you installed the v17
msodbcsql package that was briefly available, you should remove it before installing the
msodbcsql17 package. This will avoid conflicts. The
msodbcsql17 package can be installed side by side with the
msodbcsql v13 package.
#Download the desired package(s) curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_22.214.171.124-1_amd64.apk curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_126.96.36.199-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_188.8.131.52-1_amd64.sig curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_184.108.40.206-1_amd64.sig curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import - gpg --verify msodbcsql17_220.127.116.11-1_amd64.sig msodbcsql17_18.104.22.168-1_amd64.apk gpg --verify mssql-tools_22.214.171.124-1_amd64.sig mssql-tools_126.96.36.199-1_amd64.apk #Install the package(s) sudo apk add --allow-untrusted msodbcsql17_188.8.131.52-1_amd64.apk sudo apk add --allow-untrusted mssql-tools_184.108.40.206-1_amd64.apk
Driver version 17.5 or higher is required for Alpine support.
The following sections explain how to install the Microsoft ODBC driver 13.1 from the bash shell for different Linux distributions.
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
The following sections explain how to install the Microsoft ODBC driver 13 from the bash shell for different Linux distributions.
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-220.127.116.11-1 mssql-tools-18.104.22.168-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-22.214.171.124 /usr/bin/sqlcmd sudo ln -sfn /opt/mssql-tools/bin/bcp-126.96.36.199 /usr/bin/bcp
If you need the Microsoft ODBC Driver 13 to be installed on a computer with no Internet connection, you must resolve package dependencies manually. The Microsoft 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)
- Red Hat:
glibc, e2fsprogs, krb5-libs, openssl, unixODBC
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. For a general solution to this issue, refer to your distribution's package manager documentation: Red Hat, Ubuntu, and SUSE
It's 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 Microsoft ODBC Driver 13 package.
- Download the latest
- Install dependencies and the driver.
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
The following sections explain how to install the Microsoft ODBC driver 11 on Linux. Before you can use the driver, install the unixODBC driver manager. For more information, see Installing the Driver Manager.
These instructions refer to
msodbcsql-11.0.2270.0.tar.gz, which is installation file for Red Hat Linux. If you are installing the Preview for SUSE Linux, the file name is
To install the driver:
Make sure that you have root permission.
Change to the directory where the download placed the file
msodbcsql-11.0.2270.0.tar.gz. Make sure that you have the *.tar.gz file that matches your version of Linux. To extract the files, execute the following command,
tar xvzf msodbcsql-11.0.2270.0.tar.gz.
Change to the
msodbcsql-11.0.2270.0directory and there you should see a file called install.sh.
To see a list of the available installation options, execute the following command: ./install.sh.
Make a backup of odbcinst.ini. The driver installation updates odbcinst.ini. odbcinst.ini contains the list of drivers that are registered with the unixODBC Driver Manager. To discover the location of odbcinst.ini on your computer, execute the following command:
Before you install the driver, execute the following command:
./install.sh verify. The output of
./install.sh verifyreports if your computer has the required software to support the ODBC driver on Linux.
When you're ready to install the ODBC driver on Linux, execute the command:
./install.sh install. If you need to specify an install command (
lib-dir), specify the command after the install option.
After reviewing the license agreement, type YES to continue with the installation.
Installation puts the driver in
/opt/microsoft/msodbcsql/11.0.2270.0. The driver and its support files must be in
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".
You can uninstall the ODBC driver 11 on Linux by executing the following commands:
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"
The ODBC driver on Linux consists of the following components:
|libmsodbcsql-17.X.so.X.X or libmsodbcsql-13.X.so.X.X||The shared object (
||The accompanying resource file for the driver library. This file is installed in
|msodbcsql.h||The header file that contains all of the new definitions needed to use the driver.
Note: You can't reference msodbcsql.h and odbcss.h in the same program.
msodbcsql.h is installed in
|LICENSE.txt||The text file that contains the terms of the End-User License Agreement. This file is placed in
|RELEASE_NOTES||The text file that contains release notes. This file is placed in
Resource file loading
The driver needs to load the resource file to function. This file is called
msodbcsqlr13.rll depending on the driver version. The location of the
.rll file is relative to the location of the driver itself (
dylib), as noted in the previous table. As of version 17.1 the driver also attempts to load the
.rll from the default directory if loading from the relative path fails. The default resource file path on Linux is
If a version of the driver has been previously installed and registered with unixODBC, installation may fail with an error like
Installation failed, ODBC Driver $1 for SQL Server detected!. To resolve the problem, unregister that version of the driver. You can unregister drivers via the
odbcinst -u -d -n "ODBC Driver $1 for SQL Server. (Replace
$1 with the version of the driver reported in the installation error.) If uninstall via the
odbcinst command fails, you can manually remove driver sections from the
odbcinst.ini file. You can find the location of the
odbcinst.ini file via the command
If you're unable to make a connection to SQL Server using the ODBC driver, see the known issues article on troubleshooting connection problems.