Sdílet prostřednictvím


Instalace ovladače Microsoft ODBC pro SQL Server (Linux)

Tento článek vysvětluje, jak nainstalovat ovladač Microsoft ODBC pro SQL Server v Linuxu. Obsahuje také pokyny pro volitelné nástroje příkazového řádku pro SQL Server (bcp a sqlcmd) a hlavičky vývoje unixODBC.

Tento článek obsahuje příkazy pro instalaci ovladače ODBC z prostředí Bash. Pokud chcete balíčky stáhnout přímo, přečtěte si téma Stažení ovladače ODBC pro SQL Server.

Microsoft ODBC 18

Následující části vysvětlují, jak nainstalovat ovladač Microsoft ODBC 18 z prostředí Bash pro různé distribuce Linuxu. Mezi podporované distribuce patří Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES), Ubuntu a Azure Linux. Počínaje verzí 18.4 můžete při instalaci ovladače pro non-Alpine Linux (.deb nebo .rpm) automaticky přijmout smlouvu EULA vytvořením souboru /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

Poznámka

Pro podporu Alpine se vyžaduje ovladač verze 17.5 nebo vyšší.

Předchozí verze

Následující části obsahují pokyny pro instalaci předchozích verzí ovladače Microsoft ODBC v Linuxu. Probírá se následující verze ovladačů:

Microsoft ODBC 17

Následující části vysvětlují, jak nainstalovat ovladač Microsoft ODBC 17 z prostředí Bash pro různé distribuce Linuxu.

Důležitý

Pokud jste nainstalovali balíček verze 17 msodbcsql, který byl krátce dostupný, odeberte ho před instalací balíčku msodbcsql17, abyste se vyhnuli konfliktům. Balíček msodbcsql17 můžete nainstalovat vedle sebe s balíčkem msodbcsql verze 13.

#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

Poznámka

Pro podporu Alpine se vyžaduje ovladač verze 17.5 nebo vyšší.

ODBC 13.1

Následující části vysvětlují, jak nainstalovat ovladač Microsoft ODBC 13.1 z prostředí Bash pro různé distribuce Linuxu.

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

Následující části vysvětlují, jak nainstalovat ovladač Microsoft ODBC 13 z prostředí Bash pro různé distribuce Linuxu.

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 Instalace ODBC 13

Pokud potřebujete nainstalovat ovladač Microsoft ODBC 13 do počítače bez připojení k internetu, je nutné přeložit závislosti balíčků ručně. Ovladač Microsoft ODBC 13 má následující přímé závislosti:

  • Ubuntu: libc6 (>= 2,21), libstdc++6 (>= 4,9), libkrb5-3, libcurl3 (openssl = 0,5), unixODBC (>= 2,3.1-1)
  • Red Hat: glibc, e2fsprogs, krb5-libs, openssl, unixODBC
  • SUSE: glibc, libuuid1, krb5, openssl, unixODBC

Každý z těchto balíčků má své vlastní závislosti, které mohou nebo nemusí být přítomné v systému. Obecné řešení tohoto problému najdete v dokumentaci správce balíčků vaší distribuce: Red Hat, Ubuntu a SUSE.

Všechny závislé balíčky si můžete stáhnout ručně a umístit je do instalačního počítače. Potom ručně nainstalujte každý balíček a dokončujte ho balíčkem 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

Následující části vysvětlují, jak nainstalovat ovladač Microsoft ODBC 11 v Linuxu. Před použitím ovladače nainstalujte správce ovladačů unixODBC. Další informace naleznete v tématu Instalace správce ovladačů.

Kroky instalace

Důležitý

Tyto pokyny odkazují na msodbcsql-11.0.2270.0.tar.gz, což je instalační soubor pro Red Hat Linux. Pokud instalujete pro SUSE Linux, název souboru je msodbcsql-11.0.2260.0.tar.gz.

Instalace ovladače:

  1. Ujistěte se, že máte oprávnění ke kořenovému adresáři.

  2. Stáhněte ovladač.

    Distribuce Driver Hash 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
  3. Přejděte do adresáře, do kterého se soubor stáhl, msodbcsql-11.0.2270.0.tar.gz. Ujistěte se, že máte *.tar.gz soubor, který odpovídá vaší verzi Linuxu. Pokud chcete extrahovat soubory, spusťte následující příkaz:

    tar xvzf msodbcsql-11.0.2270.0.tar.gz
    
  4. Přejděte do msodbcsql-11.0.2270.0 adresáře. Měl by se zobrazit soubor s názvem install.sh.

  5. Pokud chcete zobrazit seznam dostupných možností instalace, spusťte následující příkaz:

    ./install.sh
    
  6. Vytvořte zálohu odbcinst.ini. Aktualizace instalace odbcinst.iniovladače . odbcinst.ini obsahuje seznam ovladačů registrovaných ve Správci ovladačů unixODBC. Pokud chcete zjistit umístění odbcinst.ini v počítači, spusťte následující příkaz:

    odbc_config --odbcinstini
    
  7. Před instalací ovladače spusťte následující příkaz:

    ./install.sh verify
    

    Výstup ./install.sh verify uvádí, zda váš počítač má požadovaný software pro podporu ovladače ODBC na Linuxu.

  8. Až budete připraveni nainstalovat ovladač ODBC v Linuxu, spusťte příkaz:

    ./install.sh install
    

    Pokud potřebujete zadat příkaz instalace (bin-dir nebo lib-dir), zadejte příkaz za install možností.

  9. Po kontrole licenční smlouvy zadejte YES , abyste mohli pokračovat v instalaci.

Instalace umístí ovladač do /opt/microsoft/msodbcsql/11.0.2270.0. Ovladač a jeho podpůrné soubory musí být v /opt/microsoft/msodbcsql/11.0.2270.0.

Pokud chcete ověřit, že ovladač Microsoft ODBC v Linuxu byl úspěšně zaregistrován, spusťte následující příkaz:

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

Odinstalovat

Odinstalujte ovladač ODBC 11 v Linuxu spuštěním následujících příkazů:

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"

Soubory ovladačů

Ovladač ODBC v Linuxu obsahuje následující komponenty:

Komponenta Popis
libmsodbcsql-17.X.so.X.X nebo libmsodbcsql-13.X.so.X.X Soubor dynamické knihovny sdíleného objektu (so), který obsahuje všechny funkce ovladače. Instalační cesta je /opt/microsoft/msodbcsql17/lib64/ pro ovladač 17 a /opt/microsoft/msodbcsql/lib64/ pro Ovladač 13.
msodbcsqlr17.rll nebo msodbcsqlr13.rll Soubor prostředků, který doprovází knihovnu ovladačů. Instalační cesta je [driver .so directory]../share/resources/en_US/
msodbcsql.h Hlavičkový soubor, který obsahuje všechny nové definice potřebné k použití ovladače.

Poznámka: nemůžete odkazovat na msodbcsql.h a odbcss.h ve stejném programu.

Instalační cesta je /opt/microsoft/msodbcsql17/include/ pro ovladač 17 a /opt/microsoft/msodbcsql/include/ pro Ovladač 13.
LICENSE.txt Textový soubor, který obsahuje podmínky licenční smlouvy End-User. Instalační cesta je /usr/share/doc/msodbcsql17/ pro ovladač 17 a /usr/share/doc/msodbcsql/ pro Ovladač 13.
RELEASE_NOTES Textový soubor, který obsahuje poznámky k verzi. Instalační cesta je /usr/share/doc/msodbcsql17/ pro ovladač 17 a /usr/share/doc/msodbcsql/ pro Ovladač 13.

Načítání souboru zdrojů

Ovladač musí načíst soubor prostředků, aby fungoval. Tento soubor se nazývá msodbcsqlr17.rll nebo msodbcsqlr13.rll v závislosti na verzi ovladače. Umístění .rll souboru je relativní vzhledem k umístění samotného ovladače (so nebo dylib), jak je popsáno v předchozí tabulce. Počínaje verzí 17.1, pokud ovladač nemůže načíst .rll soubor z relativní cesty, pokusí se také načíst .rll soubor z výchozího adresáře. Výchozí cesta ke zdrojovému souboru v Linuxu je /opt/microsoft/msodbcsql17/share/resources/en_US/.

Odstraňování problémů

Pokud jste dříve nainstalovali a zaregistrovali verzi ovladače se systémem unixODBC, instalace může selhat s chybou podobnou této:

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

Problém vyřešíte zrušením registrace této verze ovladače pomocí odbcinst příkazu. Nahraďte $1 verzí ovladače hlášenou v chybě instalace:

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

Pokud odinstalace pomocí odbcinst příkazu selže, můžete ze odbcinst.ini souboru ručně odebrat oddíly ovladačů. Umístění odbcinst.ini souboru najdete pomocí příkazu odbcinst -j.

Pokud nemůžete vytvořit připojení k SQL Serveru pomocí ovladače ODBC, přečtěte si článek o známých problémech s řešením problémů s připojením.