Dela via


Installera Microsoft ODBC-drivrutinen för SQL Server (Linux)

Den här artikeln beskriver hur du installerar Microsoft ODBC-drivrutinen för SQL Server i Linux. Den innehåller även instruktioner för de valfria kommandoradsverktygen för SQL Server (bcp och sqlcmd) och unixODBC-utvecklingshuvudena.

Den här artikeln innehåller kommandon för att installera ODBC-drivrutinen från bash-gränssnittet. Om du vill ladda ned paketen direkt kan du läsa Ladda ned ODBC-drivrutin för SQL Server.

Microsoft ODBC 18

I följande avsnitt beskrivs hur du installerar Microsoft ODBC-drivrutinen 18 från bash-gränssnittet för olika Linux-distributioner. Distributioner som stöds är Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES) och Ubuntu. Från och med version 18.4 kan du skapa filen "/opt/microsoft/msodbcsql18/ACCEPT_EULA" om du vill godkänna licensavtalet automatiskt när du installerar drivrutinen för icke-Alpine Linux (.deb eller .rpm).

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/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/msodbcsql18_18.4.1.1-1_$architecture.apk
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/mssql-tools18_18.4.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/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/msodbcsql18_18.4.1.1-1_$architecture.sig
curl -O https://download.microsoft.com/download/7/6/d/76de322a-d860-4894-9945-f0cc5d6a45f8/mssql-tools18_18.4.1.1-1_$architecture.sig

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

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

Anteckning

Drivrutinsversion 17.5 eller senare krävs för Alpine-support.

Tidigare versioner

Följande avsnitt innehåller instruktioner för att installera tidigare versioner av Microsoft ODBC-drivrutinen i Linux. Följande drivrutinsversioner beskrivs:

Microsoft ODBC 17

I följande avsnitt beskrivs hur du installerar Microsoft ODBC-drivrutinen 17 från bash-gränssnittet för olika Linux-distributioner.

Viktig

Om du har installerat v17 msodbcsql-paketet som var kort tillgängligt bör du ta bort det innan du installerar msodbcsql17-paketet. Detta undviker konflikter. Det msodbcsql17 paketet kan installeras sida vid sida med msodbcsql v13-paketet.

#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

Anteckning

Drivrutinsversion 17.5 eller senare krävs för Alpine-support.

ODBC 13.1

I följande avsnitt beskrivs hur du installerar Microsoft ODBC-drivrutinen 13.1 från bash-gränssnittet för olika Linux-distributioner.

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

I följande avsnitt beskrivs hur du installerar Microsoft ODBC-drivrutinen 13 från bash-gränssnittet för olika Linux-distributioner.

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

Offline-installation

Om du vill att Microsoft ODBC Driver 13 ska installeras på en dator utan Internetanslutning måste du lösa paketberoenden manuellt. Microsoft ODBC Driver 13 har följande direkta beroenden:

  • Ubuntu: libc6 (>= 2.21), libstdc++6 (>= 4.9), libkrb5-3, libcurl3, openssl, debconf (>= 0.5), unixodbc (>= 2.3.1-1)
  • Röd hatt: glibc, e2fsprogs, krb5-libs, openssl, unixODBC
  • SUSE: glibc, libuuid1, krb5, openssl, unixODBC

Vart och ett av dessa paket har i sin tur sina egna beroenden, som kanske eller kanske inte finns i systemet. En allmän lösning på det här problemet finns i dokumentationen för distributionens pakethanterare: Red Hat, Ubuntuoch SUSE

Det är också vanligt att manuellt ladda ned alla beroende paket och placera dem tillsammans på installationsdatorn och sedan installera varje paket manuellt och avsluta med Microsoft ODBC Driver 13-paketet.

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

I följande avsnitt beskrivs hur du installerar Microsoft ODBC-drivrutinen 11 i Linux. Innan du kan använda drivrutinen installerar du unixODBC-drivrutinshanteraren. Mer information finns i Installera Driver Manager-.

Installationssteg

Viktig

De här anvisningarna refererar till msodbcsql-11.0.2270.0.tar.gz, som är installationsfil för Red Hat Linux. Om du installerar för SUSE Linux är filnamnet msodbcsql-11.0.2260.0.tar.gz.

Så här installerar du drivrutinen:

  1. Kontrollera att du har root-åtkomst.

  2. Ladda ned drivrutinen.
    Red Hat 5 – msodbcsql-11.0.2270.0.tar.gzSHA256: 178280daf01a49b8322cd902b6440979adacd594c01cd2a1f081dda23dbfb343
    Red Hat 6 – msodbcsql-11.0.2270.0.tar.gzSHA256: e9b6bd33d174c7753b3a3f2d541713fbc156b46254484a169caa3f459dd828f7
    SUSE Linux – msodbcsql-11.0.2260.0.tar.gz (SHA256: 86d1c5842be4f0095234a9455e18a04fdf4cc7960ec0255b37258112e2391ef5)

  3. Ändra till katalogen där nedladdningen placerade filen msodbcsql-11.0.2270.0.tar.gz. Kontrollera att du har filen *.tar.gz som matchar din version av Linux. Om du vill extrahera filerna kör du följande kommando tar xvzf msodbcsql-11.0.2270.0.tar.gz.

  4. Ändra till katalogen msodbcsql-11.0.2270.0 och där bör du se en fil med namnet install.sh.

  5. Om du vill se en lista över tillgängliga installationsalternativ kör du följande kommando: ./install.sh.

  6. Gör en säkerhetskopia av odbcinst.ini. Drivrutinsinstallationen uppdaterar odbcinst.ini. odbcinst.ini innehåller listan över drivrutiner som är registrerade med unixODBC Driver Manager. Kör följande kommando för att identifiera platsen för odbcinst.ini på datorn: odbc_config --odbcinstini.

  7. Innan du installerar drivrutinen kör du följande kommando: ./install.sh verify. Utdata från ./install.sh verify rapporterar om datorn har den programvara som krävs för att stödja ODBC-drivrutinen i Linux.

  8. När du är redo att installera ODBC-drivrutinen i Linux kör du kommandot: ./install.sh install. Om du behöver ange ett installationskommando (bin-dir eller lib-dir) anger du kommandot efter alternativet installera.

  9. När du har granskat licensavtalet skriver du JA- för att fortsätta med installationen.

Installationen placerar drivrutinen i /opt/microsoft/msodbcsql/11.0.2270.0. Drivrutinen och de tillhörande supportfilerna måste finnas i /opt/microsoft/msodbcsql/11.0.2270.0.

Kontrollera att Microsoft ODBC-drivrutinen på Linux har registrerats genom att köra följande kommando: odbcinst -q -d -n "ODBC Driver 11 for SQL Server".

Avinstallera

Du kan avinstallera ODBC-drivrutinen 11 i Linux genom att köra följande kommandon:

  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"

Drivrutinsfiler

ODBC-drivrutinen i Linux består av följande komponenter:

Komponent Beskrivning
libmsodbcsql-17.X.so.X.X eller libmsodbcsql-13.X.so.X.X Det delade objektet (so) dynamisk biblioteksfil som innehåller alla drivrutinsfunktioner. Den här filen installeras i /opt/microsoft/msodbcsql17/lib64/ för drivrutinen 17 och i /opt/microsoft/msodbcsql/lib64/ för drivrutin 13.
msodbcsqlr17.rll eller msodbcsqlr13.rll Den tillhörande resursfilen för drivrutinsbiblioteket. Den här filen är installerad i [driver .so directory]../share/resources/en_US/
msodbcsql.h Rubrikfilen som innehåller alla nya definitioner som behövs för att använda drivrutinen.

Obs! Du kan inte referera till msodbcsql.h och odbcss.h i samma program.

msodbcsql.h installeras i /opt/microsoft/msodbcsql17/include/ för Driver 17 och i /opt/microsoft/msodbcsql/include/ för Driver 13.
LICENSE.txt Textfilen som innehåller villkoren i End-User licensavtalet. Den här filen placeras i /usr/share/doc/msodbcsql17/ för Driver 17 och i /usr/share/doc/msodbcsql/ för Driver 13.
Versionsanteckningar Textfilen som innehåller releasenoter. Den här filen placeras i /usr/share/doc/msodbcsql17/ för Driver 17 och i /usr/share/doc/msodbcsql/ för Driver 13.

Inläsning av resursfil

Drivrutinen måste läsa in resursfilen för att fungera. Den här filen kallas msodbcsqlr17.rll eller msodbcsqlr13.rll beroende på drivrutinsversionen. Platsen för den .rll filen är relativ till platsen för själva drivrutinen (so eller dylib), enligt beskrivningen i föregående tabell. Från och med version 17.1 försöker drivrutinen också läsa in .rll från standardkatalogen om inläsningen från den relativa sökvägen misslyckas. Standardsökvägen för resursfiler i Linux är /opt/microsoft/msodbcsql17/share/resources/en_US/.

Felsöka

Om en version av drivrutinen tidigare har installerats och registrerats med unixODBC kan installationen misslyckas med ett fel som Installation failed, ODBC Driver $1 for SQL Server detected!. Lös problemet genom att avregistrera den versionen av drivrutinen. Du kan avregistrera drivrutiner via kommandot odbcinst: odbcinst -u -d -n "ODBC Driver $1 for SQL Server. (Ersätt $1 med den version av drivrutinen som rapporterades i installationsfelet.) Om avinstallationen via kommandot odbcinst misslyckas kan du manuellt ta bort drivrutinsavsnitt från odbcinst.ini-filen. Du hittar platsen för odbcinst.ini-filen via kommandot odbcinst -j.

Om du inte kan ansluta till SQL Server med ODBC-drivrutinen, se artikeln om kända problem med felsökning av anslutningsproblem .