Our software uses the highest driver installed, For example, If both SQL server 2005 and 2008 are installed it will use SQL Server 2008 Driver. To Check Version of SQL Server ODBC Driver do the following. For MS SQL Server 2005 SP3 (9.0.4035) on Windows use: Microsoft SQL Native Client 20.00: For MS SQL Server 2008 SP1 (.22) on Windows use: Microsoft SQL Native Client 2007.100.2531.00: For all versions of MS SQL Server supported above on Mac OS X use: Actual Technologies, SQL Server version 3.0.
- Microsoft Sql Server Odbc Drivers
- Latest Sql Server Odbc Driver
- Microsoft Sql Server 2005 Odbc Drivers For Mac 64-bit
- Microsoft Sql Server 2005 Odbc Drivers For Mac Free
- Microsoft Sql Server Odbc Driver
This topic lists the requirements to use the Microsoft ODBC Driver for SQL Server on Linux and macOS.
SQL version compatibility
The Linux and macOS drivers SQL version compatibility is the same as the Windows drivers SQL version compatibility.
Operating system support
Versions 17, 13.1, and 13 of the Linux and macOS drivers are supported on the x64 architecture of the following operating systems:
Driver version → ↓ Operating System | 17.6 | 17.5 | 17.4 | 17.3 | 17.2 | 17.1 | 17.0 | 13.1 | 13 |
---|---|---|---|---|---|---|---|---|---|
Apple OS X 10.11 (El Capitan) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Apple macOS 10.12 (Sierra) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Apple macOS 10.13 (High Sierra) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Apple macOS 10.14 (Mojave) | Yes | Yes | Yes | Yes | |||||
Apple macOS 10.15 (Catalina) | Yes | Yes | |||||||
Alpine Linux 3.11 | Yes | Yes | |||||||
Debian Linux 8 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Debian Linux 9 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Debian Linux 10 | Yes | Yes | Yes | ||||||
Oracle Linux 8 | Yes | Yes | |||||||
RedHat Enterprise Linux 6 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
RedHat Enterprise Linux 7 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
RedHat Enterprise Linux 8 | Yes | Yes | Yes | ||||||
SUSE Linux Enterprise Server 111 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
SUSE Linux Enterprise Server 12 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
SUSE Linux Enterprise Server 15 | Yes | Yes | Yes | Yes | |||||
Ubuntu Linux 14.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | ||
Ubuntu Linux 16.04 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Ubuntu Linux 18.04 | Yes | Yes | Yes | Yes | Yes | ||||
Ubuntu Linux 20.04 | Yes |
1 ODBC Driver 17 supports SUSE Linux Enterprise Server 11 SP4 only
The installation packages for the Microsoft ODBC Driver 13, 13.1, and 17 for SQL Server on Linux and macOS resolve the driver's dependencies automatically when installed using the package management system of your distribution, as described in Install the ODBC Driver (Linux) and Install the ODBC Driver (macOS).
Microsoft ODBC Driver 11 for SQL Server
64-bit UnixODBC 2.3.0 Driver Manager, built for 64-bit SQLLEN/SQLULEN. Later versions of the 64-bit UnixODBC Driver Manager are not supported with the ODBC driver on Linux. See Installing the Driver Manager for more information.
ODBC driver for Red Hat Enterprise Linux 5 (64-bit) requires the following packages, and can be downloaded here: Microsoft ODBC Driver 11 for SQL Server - Red Hat Linux
glibc
libgcc
libstdc++
e2fsprogs-libs
krb5-libs
openssl
ODBC driver for Red Hat Enterprise Linux 6 (64-bit) requires the following packages, and can be downloaded here: Microsoft ODBC Driver 11 for SQL Server - Red Hat Linux
glibc
libgcc
libstdc++
libuuid
krb5-libs
openssl
ODBC driver for SUSE Linux Enterprise 11 Service Pack 2 (64-bit) requires the following packages, and can be downloaded here: Microsoft ODBC Driver 11 Preview for SQL Server - SUSE Linux
glibc
libstdc++46
libgcc46
libuuid1
krb5
libopenssl0_9_8
See Also
Installing the Driver Manager
Known Issues in this Version of the Driver
Release Notes
The ODBC drivers for Linux and macOS support AlwaysOn Availability Groups. For more information about AlwaysOn Availability Groups, see:
You can specify the availability group listener of a given availability group in the connection string. If an ODBC application on Linux or macOS is connected to a database in an availability group that fails over, the original connection is broken and the application must open a new connection to continue work after the failover.
The ODBC drivers on Linux and macOS iterate sequentially through all IP addresses associated with a DNS hostname if you are not connecting to an availability group listener, and multiple IP addresses are associated with the hostname.
If the DNS server's first returned IP address is not connectable, these iterations can be time consuming. When connecting to an availability group listener, the driver attempts to establish connections to all IP addresses in parallel. If a connection attempt succeeds, the driver discards any pending connection attempts.
Note
Because a connection can fail due to an availability group failover, implement connection retry logic; retry a failed connection until it reconnects. Increasing connection timeout and implementing connection retry logic increases the chance of connecting to an availability group.
Connecting With MultiSubnetFailover
Always specify MultiSubnetFailover=Yes when connecting to a SQL Server 2012 (11.x) availability group listener or SQL Server 2012 (11.x) Failover Cluster Instance. MultiSubnetFailover enables faster failover for all Availability Groups and failover cluster instance in SQL Server 2012 (11.x). MultiSubnetFailover also significantly reduces failover time for single and multi-subnet AlwaysOn topologies. During a multisubnet failover, the client attempts connections in parallel. During a subnet failover, the driver aggressively retries the TCP connection.
The MultiSubnetFailover connection property indicates that the application is being deployed in an availability group or Failover Cluster Instance. The driver tries to connect to the database on the primary SQL Server instance by trying to connect to all the IP addresses. When connecting with MultiSubnetFailover=Yes, the client retries TCP connection attempts faster than the operating system's default TCP retransmit intervals. MultiSubnetFailover=Yes enables faster reconnection after failover of either an AlwaysOn Availability Group or an AlwaysOn Failover Cluster Instance. MultiSubnetFailover=Yes applies to both single- and multi-subnet Availability Groups and Failover Cluster Instances.
Use MultiSubnetFailover=Yes when connecting to an availability group listener or Failover Cluster Instance. Otherwise, your application's performance can be negatively affected.
Note the following when connecting to a server in an availability group or Failover Cluster Instance:
Specify MultiSubnetFailover=Yes to improve performance when connecting to a single subnet or multi-subnet Availability Group.
Specify the availability group listener of the availability group as the server in your connection string.
You cannot connect to a SQL Server instance configured with more than 64 IP addresses.
Both SQL Server Authentication or Kerberos Authentication can be used with MultiSubnetFailover=Yes without affecting the behavior of the application.
You can increase the value of loginTimeout to accommodate for failover time and reduce the application's connection retry attempts.
Distributed transactions are not supported.
If read-only routing is not in effect, connecting to a secondary replica location in an availability group fails in the following situations:
If the secondary replica location is not configured to accept connections.
If an application uses ApplicationIntent=ReadWrite and the secondary replica location is configured for read-only access.
A connection fails if a primary replica is configured to reject read-only workloads and the connection string contains ApplicationIntent=ReadOnly.
Specifying Application Intent
The keyword ApplicationIntent can be specified in your connection string. The assignable values are ReadWrite or ReadOnly. The default is ReadWrite.
When ApplicationIntent=ReadOnly, the client requests a read workload when connecting. The server enforces the intent at connection time, and during a USE database statement.
The ApplicationIntent keyword does not work with legacy read-only databases.
Targets of ReadOnly
When a connection chooses ReadOnly, the connection is assigned to any of the following special configurations that might exist for the database:
Microsoft Sql Server Odbc Drivers
- A database can allow or disallow read workloads on the targeted Always On database. This choice is controlled by using the ALLOW_CONNECTIONS clause of the PRIMARY_ROLE and SECONDARY_ROLE Transact-SQL statements.
If none of those special targets are available, the regular database is read from.
The ApplicationIntent keyword enables read-only routing.
Read-Only Routing
Read-only routing is a feature that can ensure the availability of a read-only replica of a database. To enable read-only routing, all of the following apply:
You must connect to an Always On Availability Group availability group listener.
The ApplicationIntent connection string keyword must be set to ReadOnly.
The Availability Group must be configured by the database administrator to enable read-only routing.
Multiple connections each using read-only routing might not all connect to the same read-only replica. Changes in database synchronization or changes in the server's routing configuration can result in client connections to different read-only replicas. You can ensure that all read-only requests connect to the same read-only replica. Ensure this sameness by not passing an availability group listener to the Server connection string keyword. Instead, specify the name of the read-only instance.
Read-only routing may take longer than connecting to the primary. The longer wait is because read-only routing first connects to the primary, and then looks for the best available readable secondary. Due to these multiple steps, you should increase your login timeout to at least 30 seconds.
ODBC Syntax
Two ODBC connection string keywords support AlwaysOn Availability Groups:
Latest Sql Server Odbc Driver
ApplicationIntent
MultiSubnetFailover
For more information about ODBC connection string keywords, see Using Connection String Keywords with SQL Server Native Client.
Microsoft Sql Server 2005 Odbc Drivers For Mac 64-bit
The equivalent connection attributes are:
SQL_COPT_SS_APPLICATION_INTENT
SQL_COPT_SS_MULTISUBNET_FAILOVER
Microsoft Sql Server 2005 Odbc Drivers For Mac Free
For more information about ODBC connection attributes, see SQLSetConnectAttr.
An ODBC application that uses AlwaysOn Availability Groups can use one of two functions to make the connection:
Function | Description |
---|---|
SQLConnect Function | SQLConnect supports both ApplicationIntent and MultiSubnetFailover via a data source name (DSN) or connection attribute. |
SQLDriverConnect Function | SQLDriverConnect supports ApplicationIntent and MultiSubnetFailover via DSN, connection string keyword, or connection attribute. |