Macos Odbc Drivers For Sqlserver 2017

This Microsoft ODBC Driver 13 for SQL Server connection string can be used for connections to SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012 and SQL Server 2008. If you connect to a database that is being mirrored, your application can take advantage of the drivers ability to automatically redirect connections when a database mirroring failover occurs. Microsoft ODBC Driver 17 for SQL Server is a single dynamic-link library (DLL) containing run-time support for applications using native-code APIs to connect to Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, Analytics Platform System, Azure SQL Database and Azure SQL Data Warehouse. Version 17.5 of the Microsoft ODBC Driver 17 for SQL Server has been released. Version 17.5.1 brings a few new features and a handful of fixes to the driver. Features New SQLCOPTSSSPID connection attribute provides SPID without a round-trip to the server Support for indicating EULA acceptance.

-->

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 (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.

Microsoft ODBC 17

The following sections explain how to install the Microsoft ODBC driver 17 from the bash shell for different Linux distributions.

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.

For

Alpine Linux

Note

Driver version 17.5 or higher is required for Alpine support.

Debian

Note

You can substitute setting the environment variable 'ACCEPT_EULA' with setting the debconf variable 'msodbcsql/ACCEPT_EULA' instead: echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections

Red Hat Enterprise Server and Oracle Linux

SUSE Linux Enterprise Server

Ubuntu

Note

  • Driver version 17.2 or higher is required for Ubuntu 18.04 support.
  • Driver version 17.3 or higher is required for Ubuntu 18.10 support.

Note

You can substitute setting the environment variable 'ACCEPT_EULA' with setting the debconf variable 'msodbcsql/ACCEPT_EULA' instead: echo msodbcsql17 msodbcsql/ACCEPT_EULA boolean true | sudo debconf-set-selections

Previous versions

The following sections provide instructions for installing previous versions of the Microsoft ODBC driver on Linux. The following driver versions are covered:

ODBC 13.1

The following sections explain how to install the Microsoft ODBC driver 13.1 from the bash shell for different Linux distributions.

Debian 8

RedHat Enterprise Server 6

RedHat Enterprise Server 7

SUSE Linux Enterprise Server 11

SUSE Linux Enterprise Server 12

Ubuntu 15.10

Ubuntu 16.04

Ubuntu 16.10

ODBC 13

The following sections explain how to install the Microsoft ODBC driver 13 from the bash shell for different Linux distributions.

RedHat Enterprise Server 6

RedHat Enterprise Server 7

Ubuntu 15.10

Ubuntu 16.04

SUSE Linux Enterprise Server 12

Offline installation

Microsoft Sql Server Odbc Driver For Mac

If you prefer/require the Microsoft ODBC Driver 13 to be installed on a computer with no internet connection, you will need to 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
  • SUSE: 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: Redhat, Ubuntu, and SUSE

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 Microsoft ODBC Driver 13 package.

Redhat Linux Enterprise Server 7

  • Download the latest msodbcsql.rpm from https://packages.microsoft.com/rhel/7/prod/.
  • Install dependencies and the driver.

Ubuntu 16.04

  • Download the latest msodbcsql.deb from https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/msodbcsql/.
  • Install dependencies and the driver.

SUSE Linux Enterprise Server 12

  • Download the latest msodbcsql.rpm from https://packages.microsoft.com/sles/12/prod/.
  • Install the dependencies and the driver.

After you have completed the package installation, you can verify that the Microsoft ODBC Driver 13 can find all its dependencies by running ldd and inspecting its output for missing libraries:

Sql Server Odbc Driver 13

ODBC 11

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.

Installation Steps

Important

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 msodbcsql-11.0.2260.0.tar.gz.

To install the driver:

  1. Make sure that you have root permission.

  2. 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.

  3. Change to the msodbcsql-11.0.2270.0 directory and there you should see a file called install.sh.

  4. To see a list of the available installation options, execute the following command: ./install.sh.

  5. 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: odbc_config --odbcinstini.

  6. Before you install the driver, execute the following command: ./install.sh verify. The output of ./install.sh verify reports if your computer has the required software to support the ODBC driver on Linux.

  7. When you are ready to install the ODBC driver on Linux, execute the command: ./install.sh install. If you need to specify an install command (bin-dir or lib-dir), specify the command after the install option.

  8. 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 /opt/microsoft/msodbcsql/11.0.2270.0.

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'.

Uninstall

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'

Driver files

The ODBC driver on Linux consists of the following components:

ComponentDescription
libmsodbcsql-17.X.so.X.X or libmsodbcsql-13.X.so.X.XThe shared object (so) dynamic library file that contains all of the driver's functionality. This file is installed in /opt/microsoft/msodbcsql17/lib64/ for the Driver 17 and in /opt/microsoft/msodbcsql/lib64/ for Driver 13.
msodbcsqlr17.rll or msodbcsqlr13.rllThe accompanying resource file for the driver library. This file is installed in [driver .so directory]../share/resources/en_US/
msodbcsql.hThe header file that contains all of the new definitions needed to use the driver.
Note: You cannot reference msodbcsql.h and odbcss.h in the same program.
msodbcsql.h is installed in /opt/microsoft/msodbcsql17/include/ for Driver 17 and in /opt/microsoft/msodbcsql/include/ for Driver 13.
LICENSE.txtThe text file that contains the terms of the End-User License Agreement. This file is placed in /usr/share/doc/msodbcsql17/ for Driver 17 and in /usr/share/doc/msodbcsql/ for Driver 13.
RELEASE_NOTESThe text file that contains release notes. This file is placed in /usr/share/doc/msodbcsql17/ for Driver 17 and in /usr/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 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 table above. 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 path on Linux is /opt/microsoft/msodbcsql17/share/resources/en_US/.

Troubleshooting

If you are unable to make a connection to SQL Server using the ODBC driver, see the known issues article on troubleshooting connection problems.

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.

-->

The unixODBC Driver Manager on macOS and Linux supports tracing of ODBC API call entry and exit of the ODBC Driver for SQL Server.

To trace your application's ODBC behavior, edit the odbcinst.ini file's [ODBC] section to set the values Trace=Yes and TraceFileto the path of the file which is to contain the trace output; for example:

(You may also use /dev/stdout or any other device name to send trace output there instead of to a persistent file.) With the above settings, every time an application loads the unixODBC Driver Manager, it will record all the ODBC API calls which it performed into the output file.

After you finish tracing your application, remove Trace=Yes from the odbcinst.ini file to avoid the performance penalty of tracing, and ensure any unnecessary trace files are removed.

Tracing applies to all applications that use the driver in odbcinst.ini. To not trace all applications (for example, to avoid disclosing sensitive per-user information), you can trace an individual application instance by providing it the location of a private odbcinst.ini, using the ODBCSYSINI environment variable. For example:

In this case, you can add Trace=Yes to the [ODBC Driver 13 for SQL Server] section of /home/myappuser/odbcinst.ini.

Determining which odbc.ini File the Driver is Using

The Linux and macOS ODBC drivers do not know which odbc.ini is in use, or the path to the odbc.ini file. However, information about which odbc.ini file is in use is available from the unixODBC tools odbc_config and odbcinst, and from the unixODBC Driver Manager documentation.

For example, the following command prints (among other information) the location of system and user odbc.ini files which contain, respectively, system and user DSNs:

The unixODBC documentation explains the differences between user and system DSNs. In summary:

  • User DSNs --- these are DSNs which are only available to a specific user. Users can connect using, add, modify, and remove their own user DSNs. User DSNs are stored in a file in the user's home directory, or a subdirectory thereof.

  • System DSNs --- these DSNs are available for every user on the system to connect using them, but can only be added, modified, and removed by a system administrator. If a user has a user DSN with the same name as a system DSN, the user DSN will be used upon connections by that user.

See Also