Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
En este artículo se explica cómo instalar Microsoft ODBC Driver for SQL Server en Linux. 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 desea descargar los paquetes directamente, consulte Descargar ODBC Driver for SQL Server.
Microsoft ODBC 18
En las secciones siguientes se explica cómo instalar Microsoft ODBC Driver 18 desde el shell de Bash para diferentes distribuciones de Linux. Las distribuciones admitidas son Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES), Ubuntu y Azure Linux. A partir de la versión 18.4, para aceptar automáticamente el Acuerdo de Licencia de Usuario Final al instalar el controlador que no es de Alpine Linux (.deb o .rpm), puede crear el archivo /opt/microsoft/msodbcsql18/ACCEPT_EULA.
case $(uname -m) in
x86_64) architecture="amd64" ;;
arm64) architecture="arm64" ;;
*) architecture="unsupported" ;;
esac
if [[ "unsupported" == "$architecture" ]];
then
echo "Alpine architecture $(uname -m) is not currently supported.";
exit;
fi
#Download the desired package(s)
curl -O https://download.microsoft.com/download/9dcab408-e0d4-4571-a81a-5a0951e3445f/msodbcsql18_18.6.1.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/b60bb8b6-d398-4819-9950-2e30cf725fb0/mssql-tools18_18.6.1.1-1_$architecture.apk
#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/9dcab408-e0d4-4571-a81a-5a0951e3445f/msodbcsql18_18.6.1.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/b60bb8b6-d398-4819-9950-2e30cf725fb0/mssql-tools18_18.6.1.1-1_$architecture.sig
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
gpg --verify msodbcsql18_18.6.1.1-1_$architecture.sig msodbcsql18_18.6.1.1-1_$architecture.apk
gpg --verify mssql-tools18_18.6.1.1-1_$architecture.sig mssql-tools18_18.6.1.1-1_$architecture.apk
#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.6.1.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.6.1.1-1_$architecture.apk
Nota
Se requiere la versión del controlador 17.5 o posterior para la compatibilidad con Alpine.
Versiones anteriores
En las secciones siguientes se proporcionan instrucciones para instalar versiones anteriores de Microsoft ODBC Driver en Linux. Se describen las siguientes versiones del controlador:
- Controlador ODBC de Microsoft 17 para SQL Server
- Controlador ODBC de Microsoft 13.1 para SQL Server
- Controlador ODBC de Microsoft 13 para SQL Server
- Controlador ODBC de Microsoft 11 para SQL Server
Microsoft ODBC 17
En las secciones siguientes se explica cómo instalar el controlador ODBC 17 de Microsoft desde el shell de Bash para diferentes distribuciones de Linux.
Importante
Si instaló el paquete v17 msodbcsql que estaba disponible brevemente, quítelo antes de instalar el paquete msodbcsql17 para evitar conflictos. Puede instalar el msodbcsql17 paquete en paralelo con el msodbcsql paquete v13.
#Download the desired package(s)
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.apk
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.10.1.1-1_amd64.apk
#(Optional) Verify signature, if 'gpg' is missing install it using 'apk add gnupg':
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.6.1-1_amd64.sig
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/mssql-tools_17.10.1.1-1_amd64.sig
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --import -
gpg --verify msodbcsql17_17.10.6.1-1_amd64.sig msodbcsql17_17.10.6.1-1_amd64.apk
gpg --verify mssql-tools_17.10.1.1-1_amd64.sig mssql-tools_17.10.1.1-1_amd64.apk
#Install the package(s)
sudo apk add --allow-untrusted msodbcsql17_17.10.6.1-1_amd64.apk
sudo apk add --allow-untrusted mssql-tools_17.10.1.1-1_amd64.apk
Nota
Se requiere la versión del controlador 17.5 o posterior para la compatibilidad con Alpine.
ODBC 13.1
En las secciones siguientes se explica cómo instalar Microsoft ODBC Driver 13.1 desde el shell de Bash para diferentes distribuciones de Linux.
if ! [[ "8" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "Debian $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/debian/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.deb
# Install the package
sudo dpkg -i packages-microsoft-prod.deb
# Delete the file
rm packages-microsoft-prod.deb
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql
# optional: for bcp and sqlcmd
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo apt-get install unixodbc-dev
ODBC 13
En las secciones siguientes se explica cómo instalar Microsoft ODBC Driver 13 desde el shell de Bash para diferentes distribuciones de Linux.
if ! [[ "6 7" == *"$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)"* ]];
then
echo "RHEL $(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1) is not currently supported.";
exit;
fi
# Download the package to configure the Microsoft repo
curl -sSL -O https://packages.microsoft.com/config/rhel/$(grep VERSION_ID /etc/os-release | cut -d '"' -f 2 | cut -d '.' -f 1)/packages-microsoft-prod.rpm
# Install the package
sudo yum install packages-microsoft-prod.rpm
# Delete the file
rm packages-microsoft-prod.rpm
sudo yum update
sudo yum remove unixODBC #to avoid conflicts
sudo ACCEPT_EULA=Y yum install msodbcsql-13.0.1.0-1 mssql-tools-14.0.2.0-1
sudo yum install unixODBC-utf16-devel #this step is optional but recommended*
#Create symlinks for tools
sudo ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd
sudo ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp
Instalación sin conexión para ODBC 13
Si necesita instalar Microsoft ODBC Driver 13 en un equipo sin conexión a Internet, debe resolver manualmente las dependencias del paquete. La versión 13 del controlador ODBC de Microsoft tiene las siguientes dependencias directas:
- Ubuntu:
libc6(>= 2.21),libstdc++6(>= 4.9),libkrb5-3,libcurl3,openssldebconf(>= 0.5),unixODBC(>= 2.3.1-1) - Red Hat:
glibc,e2fsprogs,krb5-libs, ,openssl,unixODBC - SUSE:
glibc,libuuid1,krb5,openssl,unixODBC
Cada uno de estos paquetes tiene sus propias dependencias, que podrían estar presentes o no en el sistema. Para obtener una solución general a este problema, consulte la documentación del administrador de paquetes de la distribución: Red Hat, Ubuntu y SUSE.
Puede descargar manualmente todos los paquetes dependientes y colocarlos juntos en el equipo de instalación. A continuación, instale manualmente cada paquete a su vez, terminando con el paquete Microsoft ODBC Driver 13.
- Descargue el paquete más reciente
msodbcsqlde https://packages.microsoft.com/rhel/7/prod/. - Instale las dependencias y el controlador.
sudo yum install glibc e2fsprogs krb5-libs openssl unixODBC unixODBC-devel #install dependencies
sudo rpm -i msodbcsql-13.1.X.X-X.x86_64.rpm #install the Driver
ODBC 11
En las secciones siguientes se explica cómo instalar Microsoft ODBC Driver 11 en Linux. Para poder utilizar el controlador, instale el Administrador de controladores unixODBC. Para obtener más información, consulte Instalación del Administrador de controladores.
Pasos de instalación
Importante
En estas instrucciones se hace referencia a msodbcsql-11.0.2270.0.tar.gz, que es el archivo de instalación para Red Hat Linux. Si instala para SUSE Linux, el nombre de archivo es msodbcsql-11.0.2260.0.tar.gz.
Para instalar el controlador, haga lo siguiente:
Asegúrese de que tiene permisos de raíz.
Descargue el controlador.
Distribución Driver Hash de SHA256 Red Hat 5 msodbcsql-11.0.2270.0.tar.gz 178280daf01a49b8322cd902b6440979adacd594c01cd2a1f081dda23dbfb343 Red Hat 6 msodbcsql-11.0.2270.0.tar.gz e9b6bd33d174c7753b3a3f2d541713fbc156b46254484a169caa3f459dd828f7 SUSE Linux msodbcsql-11.0.2260.0.tar.gz 86d1c5842be4f0095234a9455e18a04fdf4cc7960ec0255b37258112e2391ef5 Cambie al directorio donde la descarga ha colocado el archivo
msodbcsql-11.0.2270.0.tar.gz. Asegúrese de que tiene el archivo*.tar.gzque coincide con su versión de Linux. Para extraer los archivos, ejecute el siguiente comando:tar xvzf msodbcsql-11.0.2270.0.tar.gzCambie al directorio
msodbcsql-11.0.2270.0. Debería ver un archivo denominadoinstall.sh.Para ver una lista de las opciones de instalación disponibles, ejecute el siguiente comando:
./install.shRealice una copia de seguridad de
odbcinst.ini. La instalación del controlador actualizaodbcinst.ini. odbcinst.ini contiene la lista de controladores que están registrados en el Administrador de controladores unixODBC. Para detectar la ubicación de odbcinst.ini en el equipo, ejecute el siguiente comando:odbc_config --odbcinstiniAntes de instalar el controlador, ejecute el siguiente comando:
./install.sh verifyLa salida de
./install.sh verifynotifica si el equipo tiene el software necesario para admitir el controlador ODBC en Linux.Cuando esté listo para instalar el controlador ODBC en Linux, ejecute el comando :
./install.sh installSi necesita especificar un comando de instalación (
bin-dirolib-dir), especifique el comando después de lainstallopción .Después de revisar el contrato de licencia, escriba
YESpara continuar con la instalación.
El programa de instalación coloca el controlador en /opt/microsoft/msodbcsql/11.0.2270.0. El controlador y sus archivos auxiliares deben estar en /opt/microsoft/msodbcsql/11.0.2270.0.
Para comprobar que el controlador ODBC de Microsoft en Linux se registró correctamente, ejecute el siguiente comando:
odbcinst -q -d -n "ODBC Driver 11 for SQL Server"
Desinstalación
Desinstale el controlador ODBC 11 en Linux mediante la ejecución de los siguientes comandos:
rm -f /usr/bin/sqlcmd
rm -f /usr/bin/bcp
rm -rf /opt/microsoft/msodbcsql
odbcinst -u -d -n "ODBC Driver 11 for SQL Server"
Archivos de controlador
El controlador ODBC en Linux incluye los siguientes componentes:
| Componente | Descripción |
|---|---|
libmsodbcsql-17.X.so.X.X o libmsodbcsql-13.X.so.X.X |
El archivo de biblioteca dinámica del objeto compartido (so) que contiene toda la funcionalidad del controlador. La ruta de instalación es /opt/microsoft/msodbcsql17/lib64/ para el controlador 17 y /opt/microsoft/msodbcsql/lib64/ para el controlador 13. |
msodbcsqlr17.rll o msodbcsqlr13.rll |
Archivo de recursos que acompaña a la biblioteca de controladores. La ruta de instalación es [driver .so directory]../share/resources/en_US/ |
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 a odbcss.h en el mismo programa.La ruta de instalación es /opt/microsoft/msodbcsql17/include/ para el controlador 17 y /opt/microsoft/msodbcsql/include/ para el controlador 13. |
LICENSE.txt |
El archivo de texto que contiene los términos del Contrato de licencia del usuario final. La ruta de instalación es /usr/share/doc/msodbcsql17/ para el controlador 17 y /usr/share/doc/msodbcsql/ para el controlador 13. |
RELEASE_NOTES |
El archivo de texto que contiene las notas de la versión. La ruta de instalación es /usr/share/doc/msodbcsql17/ para el controlador 17 y /usr/share/doc/msodbcsql/ para el controlador 13. |
Carga del archivo de recursos
El controlador debe cargar el archivo de recursos para funcionar. Este archivo se denomina msodbcsqlr17.rll o msodbcsqlr13.rll según la versión del controlador. La ubicación del .rll archivo es relativa a la ubicación del propio controlador (so o dylib), como se describe en la tabla anterior. A partir de la versión 17.1, si el controlador no puede cargar el .rll archivo desde la ruta de acceso relativa, también intenta cargar el .rll archivo desde el directorio predeterminado. La ruta de acceso del archivo de recursos predeterminada en Linux es /opt/microsoft/msodbcsql17/share/resources/en_US/.
Solución de problemas
Si instaló y registró previamente una versión del controlador con unixODBC, la instalación podría fallar con un error similar a:
Installation failed, ODBC Driver $1 for SQL Server detected!
Para resolver el problema, anule el registro de esa versión del controlador mediante el odbcinst comando . Reemplace por $1 la versión del controlador notificada en el error de instalación:
odbcinst -u -d -n "ODBC Driver $1 for SQL Server"
Si se produce un error en la desinstalación mediante el comando odbcinst, puede quitar manualmente las secciones del controlador del archivo odbcinst.ini. Puede encontrar la ubicación del odbcinst.ini archivo mediante el comando odbcinst -j.
Si no puede establecer una conexión con SQL Server mediante el controlador ODBC, consulte el artículo problemas conocidos sobre la solución de problemas de conexión.