安装 Microsoft ODBC Driver for SQL Server (macOS)

本文介绍如何在 macOS 上安装 Microsoft ODBC Driver for SQL Server。 本文还包括有关 SQL Server 的可选命令行工具(bcpsqlcmd)以及 unixODBC 开发标头的说明。

本文提供了用于从 bash shell 安装 ODBC 驱动程序的命令。 如果要直接下载包,请参阅下载 ODBC Driver for SQL Server

注意

macOS 上的 17.7 版及之前的 Microsoft ODBC Driver for SQL Server 仅在 x64 体系结构上受支持。 从版本 17.8 开始,添加了 Apple ARM64 支持。 系统将检测体系结构,并通过 Homebrew 公式自动安装正确的包。 如果命令提示符在 ARM64 上的 x64 仿真模式下运行,将安装 x64 包。 如果未在仿真模式下的命令提示符中运行,将安装 ARM64 包。 此外,Homebrew 默认目录也随 ARM64 体系结构更改为 /opt/homebrew驱动程序文件部分中的路径使用默认为 /usr/local 的 x64 Homebrew 路径,因此文件路径会相应地变化。

Microsoft ODBC 18

若要在 macOS 上安装 Microsoft ODBC Driver 18 for SQL Server,请运行以下命令:

/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

以前的版本

以下各节提供了有关在 macOS 上安装 Microsoft ODBC 驱动程序的早期版本的说明。

Microsoft ODBC 17

若要在 macOS 上安装 Microsoft ODBC Driver 17 for SQL Server,请运行以下命令:

/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

重要

如果安装了暂时可用的 v17 msodbcsql 包,应先删除它,再安装 msodbcsql17 包。 这样可避免冲突。 msodbcsql17 包可以与 msodbcsql v13 包并行安装。

ODBC 13.1

使用以下命令在 OS X 10.11 (El Capitan) 和 macOS 10.12 (Sierra) 上安装 Microsoft ODBC Driver 13.1 for SQL Server:

/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

驱动程序文件

macOS 上的 ODBC 驱动程序由以下组件构成:

组件 说明
libmsodbcsql.18.dylib 或 libmsodbcsql.17.dylib 或 libmsodbcsql.13.dylib 包含该驱动程序所有功能的动态库 (dylib) 文件。 此文件安装在 /usr/local/lib/ 中。
msodbcsqlr18.rllmsodbcsqlr17.rllmsodbcsqlr13.rll 驱动程序库的附带资源文件。 此文件安装在 [driver .dylib directory]../share/msodbcsql18/resources/en_US/ 中(对于 Driver 18)、[driver .dylib directory]../share/msodbcsql17/resources/en_US/ 中(对于 Driver 17)和 [driver .dylib directory]../share/msodbcsql/resources/en_US/ 中(对于 Driver 13)。
msodbcsql.h 头文件,它包含使用驱动程序所需的所有新定义。

注意:无法在同一个程序中引用 msodbcsql.h 和 odbcss.h。
msodbcsql.h 安装在 /usr/local/include/msodbcsql18/ 中(对于 Driver 18)、/usr/local/include/msodbcsql17/ 中(对于 Driver 17)和 /usr/local/include/msodbcsql/ 中(对于 Driver 13)。
LICENSE.txt 包含最终用户许可协议条款的文本文件。 此文件放置在 /usr/local/share/doc/msodbcsql18/ 中(对于 Driver 18)、/usr/local/share/doc/msodbcsql17/ 中(对于 Driver 17 )和 /usr/local/share/doc/msodbcsql/ 中(对于 Driver 13)。
RELEASE_NOTES 包含发行说明的文本文件。 此文件放置在 /usr/local/share/doc/msodbcsql18/ 中(对于 Driver 18)、/usr/local/share/doc/msodbcsql17/ 中(对于 Driver 17 )和 /usr/local/share/doc/msodbcsql/ 中(对于 Driver 13)。

资源文件加载

驱动程序需要加载资源文件才能正常运行。 此文件称为 msodbcsqlr18.rllmsodbcsqlr17.rllmsodbcsqlr13.rll,具体取决于驱动程序版本。 .rll 文件的位置与驱动程序本身的位置(sodylib)相对,如组件表中所述。 自版本 17.1 开始,如果从相对路径加载失败,驱动程序还会尝试从默认目录加载 .rll。 macOS 上的默认资源文件路径是 /usr/local/share/msodbcsql18/resources/en_US/

疑难解答

在安装 ODBC 驱动程序后尝试进行连接时,某些用户会遇到问题,并收到如下所示的错误:"[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 18 for SQL Server' : file not found (0) (SQLDriverConnect)"。 这可能是由于未正确配置 unixODBC,无法找到已注册的驱动程序。 在这种情况下,创建符号链接可以解决此问题。

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

对于无法使用 ODBC 驱动程序与 SQL Server 建立连接的其他情况,请参阅排查连接问题上的“已知问题”一文。

如果 Brew 在查找公式时遇到问题,请确保未跳过安装步骤:brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release