Installer Microsoft ODBC Driver for SQL Server (Linux)

Cet article explique comment installer Microsoft ODBC Driver for SQL Server sur Linux. Il contient également des instructions pour les outils en ligne de commande facultatifs pour SQL Server (bcp et sqlcmd) et les en-têtes de développement unixODBC.

Cet article fournit des commandes pour installer le pilote ODBC à partir de l’interpréteur de commandes bash. Si vous souhaitez télécharger les packages directement, consultez Télécharger ODBC Driver for SQL Server.

Microsoft ODBC 18

Les sections suivantes expliquent comment installer le pilote ODBC Microsoft 18 à partir de l’interpréteur de commandes Bash pour différentes distributions Linux. Les distributions prises en charge sont Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES) et Ubuntu.

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/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/mssql-tools18_18.3.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/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/msodbcsql18_18.3.3.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/3/5/5/355d7943-a338-41a7-858d-53b259ea33f5/mssql-tools18_18.3.1.1-1_$architecture.sig

curl https://packages.microsoft.com/keys/microsoft.asc  | gpg --import -
gpg --verify msodbcsql18_18.3.3.1-1_$architecture.sig msodbcsql18_18.3.3.1-1_$architecture.apk
gpg --verify mssql-tools18_18.3.1.1-1_$architecture.sig mssql-tools18_18.3.1.1-1_$architecture.apk

#Install the package(s)
sudo apk add --allow-untrusted msodbcsql18_18.3.3.1-1_$architecture.apk
sudo apk add --allow-untrusted mssql-tools18_18.3.1.1-1_$architecture.apk

Notes

Le pilote version 17.5 ou ultérieure est requise pour la prise en charge d’Alpine.

Versions précédentes

Les sections suivantes fournissent des instructions pour l’installation des versions précédentes du pilote Microsoft ODBC sur Linux. Les versions du pilote suivantes sont abordées :

Microsoft ODBC 17

Les sections suivantes expliquent comment installer le pilote Microsoft ODBC 17 à partir de l’interpréteur de commandes bash pour différentes distributions de Linux.

Important

Si vous avez installé le package msodbcsql v17 qui n’a pas été disponible longtemps, vous devez le supprimer avant d’installer le package msodbcsql17. Cette opération évitera les conflits. Le package msodbcsql17 peut être installé côte à côte avec le package msodbcsql v13.

#Download the desired package(s)
curl -O https://download.microsoft.com/download/e/4/e/e4e67866-dffd-428c-aac7-8d28ddafb39b/msodbcsql17_17.10.5.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.5.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.5.1-1_amd64.sig msodbcsql17_17.10.5.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.5.1-1_amd64.apk
sudo apk add --allow-untrusted mssql-tools_17.10.1.1-1_amd64.apk

Notes

Le pilote version 17.5 ou ultérieure est requise pour la prise en charge d’Alpine.

ODBC 13.1

Les sections suivantes expliquent comment installer le pilote Microsoft ODBC 13.1 à partir de l’interpréteur de commandes bash pour différentes distributions de Linux.

curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
curl https://packages.microsoft.com/config/debian/8/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
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

Les sections suivantes expliquent comment installer le pilote Microsoft ODBC 13 à partir de l’interpréteur de commandes bash pour différentes distributions de Linux.

curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-release.repo
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

Installation hors connexion

Si vous avez besoin que Microsoft ODBC Driver 13 soit installé sur un ordinateur sans connexion Internet, vous devez résoudre manuellement les dépendances du package. Microsoft ODBC Driver 13 a les dépendances directes suivantes :

  • 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

Chacun de ces packages a ses propres dépendances, qui peuvent ou non être présentes sur le système. Pour une solution générale à ce problème, reportez-vous à la documentation du gestionnaire de packages de votre distribution : Red Hat, Ubuntu et SUSE

Il est également courant de télécharger manuellement tous les packages dépendants et de les placer ensemble sur l’ordinateur d’installation, puis de les installer manuellement un par un, en terminant par le package Microsoft ODBC Driver 13.

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

Les sections suivantes expliquent comment installer le pilote Microsoft ODBC 11 sur Linux. Avant d’utiliser le pilote, installez le Gestionnaire de pilotes unixODBC. Pour plus d’informations, consultez Installation du Gestionnaire de pilotes.

Procédure d’installation :

Important

Ces instructions font référence à msodbcsql-11.0.2270.0.tar.gz, qui est le fichier d’installation pour Red Hat Linux. Si vous installez la préversion pour SUSE Linux, le nom du fichier est msodbcsql-11.0.2260.0.tar.gz.

Pour installer le pilote :

  1. Assurez-vous de disposer d’une autorisation d’accès à la racine.

  2. Accédez au répertoire où le téléchargement a placé le fichier msodbcsql-11.0.2270.0.tar.gz. Assurez-vous de disposer du fichier *.tar.gz qui correspond à votre version de Linux. Pour extraire les fichiers, exécutez la commande suivante : tar xvzf msodbcsql-11.0.2270.0.tar.gz.

  3. Accédez au répertoire msodbcsql-11.0.2270.0, où devrait se trouver un fichier nommé install.sh.

  4. Pour afficher la liste des options d’installation disponibles, exécutez la commande suivante : ./install.sh.

  5. Effectuez une sauvegarde de odbcinst.ini. L’installation du pilote met à jour odbcinst.ini. odbcinst.ini contient la liste des pilotes enregistrés auprès du Gestionnaire de pilotes unixODBC. Pour découvrir l’emplacement du fichier odbcinst.ini sur votre ordinateur, exécutez la commande suivante : odbc_config --odbcinstini.

  6. Avant d’installer le pilote, exécutez la commande suivante : ./install.sh verify. La sortie de ./install.sh verify indique si votre ordinateur dispose des logiciels requis pour prendre en charge le pilote ODBC sur Linux.

  7. Quand vous souhaitez passer à l’installation du pilote ODBC sur Linux, exécutez la commande ./install.sh install. Si vous devez spécifier une commande d’installation (bin-dir ou lib-dir), spécifiez-la après l’option install.

  8. Après avoir examiné le contrat de licence, tapez YES pour poursuivre l’installation.

L’installation place le pilote dans /opt/microsoft/msodbcsql/11.0.2270.0. Le pilote et ses fichiers associés doivent être dans /opt/microsoft/msodbcsql/11.0.2270.0.

Pour vérifier que le pilote Microsoft ODBC sur Linux a été inscrit correctement, exécutez la commande suivante : odbcinst -q -d -n "ODBC Driver 11 for SQL Server".

Désinstaller l’interface

Vous pouvez désinstaller le pilote ODBC 11 sur Linux, en exécutant les commandes suivantes :

  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"

Fichiers de pilote

Le pilote ODBC sur Linux est constitué des composants suivants :

Composant Description
libmsodbcsql-17.X.so.X.X ou libmsodbcsql-13.X.so.X.X Fichier bibliothèque dynamique (so) d’objets partagés contenant l’ensemble des fonctionnalités du pilote. Ce fichier est installé dans /opt/microsoft/msodbcsql17/lib64/ pour Driver 17 et dans /opt/microsoft/msodbcsql/lib64/ pour Driver 13.
msodbcsqlr17.rll ou msodbcsqlr13.rll Fichier de ressources qui accompagne la bibliothèque du pilote. Ce fichier est installé dans [driver .so directory]../share/resources/en_US/
msodbcsql.h Fichier d’en-tête qui contient toutes les nouvelles définitions nécessaires à l’utilisation du pilote.

Remarque : Vous ne pouvez pas référencer msodbcsql.h et odbcss.h dans le même programme.

msodbcsql.h est installé dans /opt/microsoft/msodbcsql17/include/ pour Driver 17 et dans /opt/microsoft/msodbcsql/include/ pour Driver 13.
LICENSE.txt Fichier texte qui contient les termes du contrat de licence utilisateur final. Ce fichier est placé dans /usr/share/doc/msodbcsql17/ pour Driver 17 et dans /usr/share/doc/msodbcsql/ pour Driver 13.
RELEASE_NOTES Fichier texte qui contient les notes de publication. Ce fichier est placé dans /usr/share/doc/msodbcsql17/ pour Driver 17 et dans /usr/share/doc/msodbcsql/ pour Driver 13.

Chargement du fichier de ressources

Le pilote doit charger le fichier de ressources pour pouvoir fonctionner. Ce fichier est appelé msodbcsqlr17.rll ou msodbcsqlr13.rll selon la version du pilote. L'emplacement du fichier .rll est relatif à l'emplacement du pilote lui-même (so ou dylib), comme indiqué dans le tableau précédent. Depuis la version 17.1, le pilote tente aussi de charger le fichier .rll à partir du répertoire par défaut si le chargement échoue à partir du chemin d’accès relatif. Le chemin du fichier de ressources par défaut sur Linux est /opt/microsoft/msodbcsql17/share/resources/en_US/.

Dépanner

Si une version du pilote a déjà été installée et inscrite auprès de unixODBC, l’installation peut échouer avec une erreur comme Installation failed, ODBC Driver $1 for SQL Server detected!. Pour résoudre le problème, désinscrivez cette version du pilote. Vous pouvez désinscrire des pilotes via la commande odbcinst : odbcinst -u -d -n "ODBC Driver $1 for SQL Server. (Remplacez $1 par la version du pilote indiquée dans l’erreur d’installation.) Si la désinstallation via la commande odbcinst échoue, vous pouvez supprimer manuellement des sections de pilote dans le fichier odbcinst.ini. Vous pouvez trouver l’emplacement du fichier odbcinst.ini via la commande odbcinst -j.

Si vous ne parvenez pas à établir de connexion avec SQL Server à l’aide du pilote ODBC, consultez l’article sur la résolution des problèmes de connexion connus.

Étapes suivantes

Après avoir installé le pilote, vous pouvez essayer l’exemple d’application ODBC C++. Pour plus d’informations sur le développement d’applications ODBC, consultez Développement d’applications.

Pour plus d’informations, consultez les notes de publication et la configuration système requise du pilote ODBC.