Instalación de Microsoft ODBC Driver for SQL Server (macOS)

En este artículo se explica cómo instalar Microsoft ODBC Driver for SQL Server en macOS. También se incluyen instrucciones para las herramientas de línea de comandos opcionales para SQL Server (bcp y sqlcmd), y los encabezados de desarrollo de unixODBC.

En este artículo se proporcionan comandos para instalar el controlador ODBC desde el shell de Bash. Si quiere descargar directamente los paquetes, vea Descarga del controlador ODBC para SQL Server.

Nota:

Microsoft ODBC Driver for SQL Server en macOS solo se admite en la arquitectura x64 hasta la versión 17.7. Se ha agregado compatibilidad con Apple ARM64 a partir de la versión 17.8. Se detectará la arquitectura, y el paquete correcto se instalará de forma automática mediante la fórmula Homebrew. Si el símbolo del sistema se ejecuta en el modo de emulación x64 en ARM64, se instalará el paquete x64. Si no se ejecuta en modo de emulación en el símbolo del sistema, se instalará el paquete ARM64. Además, el directorio predeterminado de Homebrew cambió con la arquitectura ARM64, a /opt/homebrew. Las rutas de la sección Archivos de controlador utilizan las rutas de Homebrew x64, que de forma predeterminada son /usr/local, por lo que sus rutas de archivos variarán en consecuencia.

Microsoft ODBC 18

Para instalar Microsoft ODBC Driver 18 for SQL Server en macOS, ejecute los comandos siguientes:

/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

Versiones anteriores

En las secciones siguientes se proporcionan instrucciones para instalar versiones anteriores de Microsoft ODBC Driver en macOS.

Microsoft ODBC 17

Para instalar Microsoft ODBC Driver 17 for SQL Server en macOS, ejecute los comandos siguientes:

/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

Importante

Si ha instalado el paquete msodbcsql v17 que estaba disponible brevemente, debe quitarlo antes de instalar el paquete msodbcsql17. Esto evitará conflictos. El paquete msodbcsql17 se puede instalar en paralelo con el paquete msodbcsql v13.

ODBC 13.1

Use los comandos siguientes para instalar Microsoft ODBC Driver 13.1 for SQL Server en OS X 10.11 (El Capitan) y 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

Archivos de controlador

El controlador ODBC en macOS consta de los componentes siguientes:

Componente Descripción
libmsodbcsql.18.dylib or libmsodbcsql.17.dylib o libmsodbcsql.13.dylib El archivo de biblioteca dinámica (dylib) que contiene toda la funcionalidad del controlador. Este archivo se instala en /usr/local/lib/.
msodbcsqlr18.rll, msodbcsqlr17.rll o msodbcsqlr13.rll El archivo de recursos asociado de la biblioteca de controladores. Este archivo se instala en [driver .dylib directory]../share/msodbcsql18/resources/en_US/ para el controlador 18, en [driver .dylib directory]../share/msodbcsql17/resources/en_US/ para el controlador 17 y en [driver .dylib directory]../share/msodbcsql/resources/en_US/ para el controlador 13.
msodbcsql.h El archivo de encabezado que contiene todas las definiciones nuevas necesarias para utilizar el controlador.

Nota: No se puede hacer referencia a msodbcsql.h y odbcss.h en el mismo programa.
msodbcsql.h se instala en /usr/local/include/msodbcsql18/ para el controlador 18, en /usr/local/include/msodbcsql17/ para el controlador 17 y en /usr/local/include/msodbcsql/ para el controlador 13.
LICENSE.txt El archivo de texto que contiene los términos del Contrato de licencia del usuario final. Este archivo se coloca en /usr/local/share/doc/msodbcsql18/ para el controlador 18, en /usr/local/share/doc/msodbcsql17/ para el controlador 17 y en /usr/local/share/doc/msodbcsql/ para el controlador 13.
RELEASE_NOTES El archivo de texto que contiene las notas de la versión. Este archivo se coloca en /usr/local/share/doc/msodbcsql18/ para el controlador 18, en /usr/local/share/doc/msodbcsql17/ para el controlador 17 y en /usr/local/share/doc/msodbcsql/ para el controlador 13.

Carga del archivo de recursos

El controlador debe cargar el archivo de recursos para poder funcionar. Este archivo se denomina msodbcsqlr18.rll, msodbcsqlr17.rll o msodbcsqlr13.rll según la versión del controlador. La ubicación del archivo .rll es relativa a la ubicación del propio controlador (so o dylib), tal como se indica en la tabla de componentes. A partir de la versión 17.1, el controlador también intenta cargar .rll desde el directorio predeterminado si se produce un error en la carga de la ruta de acceso relativa. La ruta de acceso del archivo de recursos predeterminada en macOS es /usr/local/share/msodbcsql18/resources/en_US/

Solución de problemas

Algunos usuarios experimentan un problema al intentar conectarse después de instalar el controlador ODBC y reciben un error como: "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 18 for SQL Server' : file not found (0) (SQLDriverConnect)". Puede deberse a que unixODBC no está configurado correctamente para detectar los controladores registrados. En estos casos, la creación de vínculos simbólicos puede resolver el problema.

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

En otros casos, si no puede establecer una conexión con SQL Server con el controlador ODBC, vea el artículo sobre problemas conocidos en Solución de problemas de conexión.

Si brew tiene problemas para encontrar las fórmulas, asegúrese de no omitir el paso de instalación: brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release