Install the Microsoft ODBC driver for SQL Server (macOS)

This article explains how to install the Microsoft ODBC Driver for SQL Server on macOS. It also includes instructions for the optional command-line tools for SQL Server (bcp and 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.

Note

The Microsoft ODBC driver for SQL Server on macOS is only supported on the x64 architecture through version 17.7. Apple ARM64 support was added starting with version 17.8. The architecture will be detected and the correct package will be automatically installed by the Homebrew formula. If your command prompt is running in x64 emulation mode on ARM64, the x64 package will be installed. If you're not running in emulation mode in your command prompt, the ARM64 package will be installed. Additionally, the Homebrew default directory changed with the ARM64 architecture, to /opt/homebrew. The paths in the Driver files section use the x64 Homebrew paths, which default to /usr/local, so your file paths will vary accordingly.

Microsoft ODBC 18

To install Microsoft ODBC driver 18 for SQL Server on macOS, run the following commands:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18 mssql-tools18

Previous versions

The following sections provide instructions for installing previous versions of the Microsoft ODBC driver on macOS.

Microsoft ODBC 17

To install Microsoft ODBC driver 17 for SQL Server on macOS, run the following commands:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools

Important

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.

ODBC 13.1

Use the following commands to install the Microsoft ODBC driver 13.1 for SQL Server on OS X 10.11 (El Capitan) and macOS 10.12 (Sierra):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
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

Driver files

The ODBC driver on macOS consists of the following components:

Component Description
libmsodbcsql.18.dylib or libmsodbcsql.17.dylib or libmsodbcsql.13.dylib The dynamic library (dylib) file that contains all of the driver's functionality. This file is installed in /usr/local/lib/.
msodbcsqlr18.rll or msodbcsqlr17.rll or msodbcsqlr13.rll The accompanying resource file for the driver library. This file is installed in [driver .dylib directory]../share/msodbcsql18/resources/en_US/ for Driver 18, [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.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 /usr/local/include/msodbcsql18/ for Driver 18, /usr/local/include/msodbcsql17/ for Driver 17, and in /usr/local/include/msodbcsql/ for Driver 13.
LICENSE.txt The text file that contains the terms of the End-User License Agreement. This file is placed in /usr/local/share/doc/msodbcsql18/ for Driver 18, /usr/local/share/doc/msodbcsql17/ for Driver 17, and in /usr/local/share/doc/msodbcsql/ for Driver 13.
RELEASE_NOTES The text file that contains release notes. This file is placed in /usr/local/share/doc/msodbcsql18/ for Driver 18, /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. This file is called msodbcsqlr18.rll, msodbcsqlr17.rll, or msodbcsqlr13.rll depending on the driver version. The location of the .rll file is relative to the location of the driver itself (so or dylib), as noted in the component 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 macOS is /usr/local/share/msodbcsql18/resources/en_US/

Troubleshooting

Some users encounter an issue when trying to connect after installing the ODBC driver and receive an error like: "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 18 for SQL Server' : file not found (0) (SQLDriverConnect)". It may be the case that unixODBC isn't configured correctly to find registered drivers. In these cases, creating symbolic links can resolve the issue.

sudo ln -s /usr/local/etc/odbcinst.ini /etc/odbcinst.ini
sudo ln -s /usr/local/etc/odbc.ini /etc/odbc.ini

For other cases where you're unable to make a connection to SQL Server using the ODBC driver, see the known issues article on troubleshooting connection problems.

If brew is having trouble finding the formulas, make sure you didn't skip the install step: brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release

Next steps

After installing the driver, you can try the C++ ODBC example application. For more information about developing ODBC applications, see Developing Applications.

For more information, see the ODBC driver release notes and system requirements.