Freigeben über


Installation von Microsoft ODBC Driver for SQL Server (Linux)

In diesem Artikel wird die Installation von Microsoft ODBC Driver for SQL Server unter Linux erläutert. Er enthält außerdem Anweisungen für die optionalen Befehlszeilentools für SQL Server (bcp und sqlcmd) und die unixODBC-Entwicklungsheader.

In diesem Artikel finden Sie Befehle zum Installieren des ODBC-Treibers über die Bash-Shell. Wenn Sie die Pakete direkt herunterladen möchten, siehe ODBC-Treiber herunterladen für SQL Server.

Microsoft ODBC 18

In den folgenden Abschnitten erfahren Sie, wie Sie Microsoft ODBC Driver 18 für verschiedene Linux-Distributionen über die Bash-Shell herunterladen. Unterstützte Distributionen sind Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES), Ubuntu und Azure Linux. Ab Version 18.4 können Sie die Datei .deberstellen, um den EULA automatisch bei der Installation des nicht alpinen Linux (.rpm oder /opt/microsoft/msodbcsql18/ACCEPT_EULA) Treibers zu akzeptieren.

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

Hinweis

Die Treiberversion 17.5 oder höher ist für die Unterstützung von Alpine erforderlich.

Vorgängerversionen

In den folgenden Abschnitten finden Sie Anweisungen zum Installieren vorheriger Versionen von Microsoft ODBC Driver unter Linux. Die folgenden Treiberversionen werden abgedeckt:

Microsoft ODBC 17

In den folgenden Abschnitten erfahren Sie, wie Sie Microsoft ODBC Driver 17 für verschiedene Linux-Distributionen über die Bash-Shell herunterladen.

Wichtig

Wenn Sie das kurz verfügbare v17-Paket msodbcsql installiert haben, entfernen Sie es, bevor Sie das msodbcsql17 Paket installieren, um Konflikte zu vermeiden. Sie können das msodbcsql17 Paket nebeneinander mit dem msodbcsql v13-Paket installieren.

#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

Hinweis

Die Treiberversion 17.5 oder höher ist für die Unterstützung von Alpine erforderlich.

ODBC 13.1

In den folgenden Abschnitten erfahren Sie, wie Sie Microsoft ODBC Driver 13.1 für verschiedene Linux-Distributionen über die Bash-Shell herunterladen.

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

In den folgenden Abschnitten erfahren Sie, wie Sie Microsoft ODBC Driver 13 für verschiedene Linux-Distributionen über die Bash-Shell herunterladen.

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

Offlineinstallation für ODBC 13

Wenn Sie den Microsoft ODBC-Treiber 13 auf einem Computer ohne Internetverbindung installieren müssen, müssen Sie Paketabhängigkeiten manuell auflösen. Der Microsoft ODBC-Treiber 13 hat die folgenden direkten Abhängigkeiten:

  • Ubuntu: libc6 (>= 2.21), libstdc++6 (>= 4.9), libkrb5-3, libcurl3, openssldebconf (>= 0,5), unixODBC (>= 2.3.1-1)
  • Red Hat: glibc, , e2fsprogskrb5-libs, , opensslunixODBC
  • SUSE: glibc, libuuid1, krb5, openssl, unixODBC

Jedes dieser Pakete verfügt über eigene Abhängigkeiten, die möglicherweise auf dem System vorhanden sind oder nicht. Eine allgemeine Lösung für dieses Problem finden Sie in der Paket-Manager-Dokumentation Ihrer Distribution: Red Hat, Ubuntu und SUSE.

Sie können alle abhängigen Pakete manuell herunterladen und auf dem Installationscomputer platzieren. Installieren Sie anschließend jedes Paket manuell, und beenden Sie es mit dem Microsoft ODBC Driver 13-Paket.

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

In den folgenden Abschnitten wird die Installation von Microsoft ODBC Driver 11 unter Linux erläutert. Sie müssen den unixODBC-Treiber-Manager installieren, bevor Sie den Treiber verwenden können. Weitere Informationen finden Sie unter Installieren des Treiber-Managers.

Installationsschritte

Wichtig

Diese Anleitung bezieht sich auf msodbcsql-11.0.2270.0.tar.gz, die Installationsdatei für Red Hat Linux. Beim Installieren von SUSE Linux lautet der Dateiname msodbcsql-11.0.2260.0.tar.gz.

Den Treiber installieren:

  1. Stellen Sie sicher, dass Sie die Root-Berechtigung besitzen.

  2. Laden Sie den Treiber herunter.

    Verteilung Driver SHA-256-Hash
    Roter Hut 5 msodbcsql-11.0.2270.0.tar.gz 178280daf01a49b8322cd902b6440979adacd594c01cd2a1f081dda23dbfb343
    Roter Hut 6 msodbcsql-11.0.2270.0.tar.gz e9b6bd33d174c7753b3a3f2d541713fbc156b46254484a169caa3f459dd828f7
    SUSE Linux msodbcsql-11.0.2260.0.tar.gz 86d1c5842be4f0095234a9455e18a04fdf4cc7960ec0255b37258112e2391ef5
  3. Wechseln Sie zu dem Verzeichnis, in dem der Download die Datei msodbcsql-11.0.2270.0.tar.gz platziert hat. Stellen Sie sicher, dass Sie über die *.tar.gz Datei verfügen, die Ihrer Version von Linux entspricht. Führen Sie zum Extrahieren der Dateien den folgenden Befehl aus:

    tar xvzf msodbcsql-11.0.2270.0.tar.gz
    
  4. Wechseln Sie in das Verzeichnis msodbcsql-11.0.2270.0. Es sollte eine Datei mit dem Namen install.shangezeigt werden.

  5. Führen Sie den folgenden Befehl aus, um eine Liste der verfügbaren Installationsoptionen anzuzeigen:

    ./install.sh
    
  6. Erstellen Sie eine Sicherung von odbcinst.ini. Die Treiberinstallationsupdates odbcinst.ini. „odbcinst.ini“ beinhaltet die Liste der Treiber, die beim unixODBC-Treiber-Manager registriert sind. Um den Speicherort von odbcinst.ini auf Ihrem Computer zu ermitteln, führen Sie den folgenden Befehl aus:

    odbc_config --odbcinstini
    
  7. Führen Sie vor der Installation des Treibers den folgenden Befehl aus:

    ./install.sh verify
    

    Die Ausgabe von ./install.sh verify gibt an, ob Ihr Computer über die erforderliche Software verfügt, um den ODBC-Treiber unter Linux zu unterstützen.

  8. Wenn Sie bereit sind, den ODBC-Treiber unter Linux zu installieren, führen Sie den Folgenden Befehl aus:

    ./install.sh install
    

    Wenn Sie einen Installationsbefehl (bin-dir oder lib-dir) angeben müssen, geben Sie den Befehl nach der install Option an.

  9. Geben Sie nach der Überprüfung des Lizenzvertrags YES ein, um mit der Installation fortzufahren.

Die Installation platziert den Treiber in /opt/microsoft/msodbcsql/11.0.2270.0. Der Treiber und seine Unterstützungsdateien müssen sich in /opt/microsoft/msodbcsql/11.0.2270.0 befinden.

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Microsoft ODBC-Treiber unter Linux erfolgreich registriert wurde:

odbcinst -q -d -n "ODBC Driver 11 for SQL Server"

Deinstallieren

Deinstallieren Sie den ODBC-Treiber 11 unter Linux, indem Sie die folgenden Befehle ausführen:

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"

Treiberdateien

Der ODBC-Treiber unter Linux enthält die folgenden Komponenten:

Komponente BESCHREIBUNG
libmsodbcsql-17.X.so.X.X oder libmsodbcsql-13.X.so.X.X Das freigegebene Objekt (so) der dynamischen Bibliotheksdatei, das die gesamte Funktionalität des Treibers enthält. Der Installationspfad gilt /opt/microsoft/msodbcsql17/lib64/ für Treiber 17 und /opt/microsoft/msodbcsql/lib64/ für Treiber 13.
msodbcsqlr17.rll oder msodbcsqlr13.rll Die Ressourcendatei, die zur Treiberbibliothek gehört. Der Installationspfad ist [driver .so directory]../share/resources/en_US/
msodbcsql.h Die Headerdatei, die alle erforderlichen neuen Definitionen für die Verwendung des Treibers enthält.

Hinweis: In demselben Programm kann nicht sowohl auf msodbcsql.h als auch auf odbcss.h verwiesen werden.

Der Installationspfad gilt /opt/microsoft/msodbcsql17/include/ für Treiber 17 und /opt/microsoft/msodbcsql/include/ für Treiber 13.
LICENSE.txt Die Textdatei, die die Bestimmungen des Endbenutzer-Lizenzvertrags enthält. Der Installationspfad gilt /usr/share/doc/msodbcsql17/ für Treiber 17 und /usr/share/doc/msodbcsql/ für Treiber 13.
RELEASE_NOTES Die Textdatei, die die Versionshinweise enthält. Der Installationspfad gilt /usr/share/doc/msodbcsql17/ für Treiber 17 und /usr/share/doc/msodbcsql/ für Treiber 13.

Laden der Ressourcendatei

Der Treiber muss die Ressourcendatei laden, um zu funktionieren. Diese Datei heißt msodbcsqlr17.rll oder msodbcsqlr13.rll, je nach Treiberversion. Der Speicherort der .rll Datei ist relativ zum Speicherort des Treibers selbst (so oder dylib), wie in der vorherigen Tabelle beschrieben. Ab Version 17.1 versucht der Treiber, wenn er die .rll Datei nicht aus dem relativen Pfad laden kann, auch die .rll Datei aus dem Standardverzeichnis zu laden. Der Standardressourcendatei-Pfad unter Linux lautet /opt/microsoft/msodbcsql17/share/resources/en_US/.

Problembehandlung

Wenn Sie zuvor eine Version des Treibers mit unixODBC installiert und registriert haben, schlägt die Installation möglicherweise mit einem Fehler wie folgt fehl:

Installation failed, ODBC Driver $1 for SQL Server detected!

Um das Problem zu beheben, heben Sie die Registrierung dieser Version des Treibers mithilfe des odbcinst Befehls auf. Ersetzen Sie durch $1 die im Installationsfehler gemeldete Version des Treibers:

odbcinst -u -d -n "ODBC Driver $1 for SQL Server"

Wenn die Deinstallation mithilfe des odbcinst Befehls fehlschlägt, können Sie Treiberabschnitte manuell aus der odbcinst.ini Datei entfernen. Sie können den Speicherort der odbcinst.ini Datei mithilfe des Befehls odbcinst -jfinden.

Wenn Sie mit dem ODBC-Treiber keine Verbindung mit SQL Server herstellen können, lesen Sie den Artikel zu bekannten Problemen bei der Problembehandlung bei Verbindungsproblemen.