Udostępnij za pośrednictwem


Instalowanie sterownika Microsoft ODBC dla programu SQL Server (Linux)

W tym artykule wyjaśniono, jak zainstalować sterownik MICROSOFT ODBC dla programu SQL Server w systemie Linux. Zawiera również instrukcje dotyczące opcjonalnych narzędzi wiersza polecenia dla programu SQL Server (bcp i sqlcmd) oraz nagłówków programowania unixODBC.

Ten artykuł zawiera polecenia służące do instalowania sterownika ODBC z powłoki bash. Jeśli chcesz pobrać pakiety bezpośrednio, zobacz Pobierz sterownik ODBC dla programu SQL Server.

Microsoft ODBC 18

W poniższych sekcjach opisano sposób instalowania sterownika Microsoft ODBC 18 za pomocą powłoki bash dla różnych dystrybucji systemu Linux. Obsługiwane dystrybucje to Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES) i Ubuntu. Począwszy od wersji 18.4, aby automatycznie zaakceptować umowy EULA podczas instalowania sterownika innego niż Alpine Linux (.deb lub rpm), można utworzyć plik "/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/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

Uwaga

Do obsługi alpine wymagana jest wersja sterownika w wersji 17.5 lub nowszej.

Poprzednie wersje

Poniższe sekcje zawierają instrukcje dotyczące instalowania poprzednich wersji sterownika Microsoft ODBC w systemie Linux. Omówiono następujące wersje sterowników:

Microsoft ODBC 17

W poniższych sekcjach opisano sposób instalacji sterownika Microsoft ODBC 17 z konsoli bash dla różnych dystrybucji Linuksa.

Ważny

Jeśli zainstalowałeś pakiet w wersji 17 msodbcsql, który był krótko dostępny, należy go usunąć przed zainstalowaniem pakietu msodbcsql17. Pozwoli to uniknąć konfliktów. Pakiet msodbcsql17 można zainstalować obok pakietu msodbcsql w wersji 13.

#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

Notatka

Do obsługi alpine wymagana jest wersja sterownika w wersji 17.5 lub nowszej.

ODBC 13.1

W poniższych sekcjach opisano sposób instalowania sterownika Microsoft ODBC 13.1 z powłoki bash dla różnych dystrybucji systemu 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

W poniższych sekcjach wyjaśniono, jak zainstalować sterownik Microsoft ODBC 13 z powłoki Bash na różnych dystrybucjach Linuksa.

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

Instalacja w trybie offline

Jeśli potrzebujesz sterownika Microsoft ODBC 13 do zainstalowania na komputerze bez połączenia internetowego, musisz ręcznie rozwiązać zależności pakietów. Sterownik Microsoft ODBC 13 ma następujące bezpośrednie zależności:

  • 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

Każdy z tych pakietów z kolei ma własne zależności, które mogą lub nie są obecne w systemie. Ogólne rozwiązanie tego problemu można znaleźć w dokumentacji menedżera pakietów dystrybucji: Red Hat, Ubuntui SUSE

Często można również ręcznie pobrać wszystkie pakiety zależne i umieścić je razem na komputerze instalacyjnym, a następnie ręcznie zainstalować każdy pakiet z kolei, kończąc pakietem 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

W poniższych sekcjach opisano sposób instalowania sterownika Microsoft ODBC 11 w systemie Linux. Przed użyciem sterownika zainstaluj menedżera sterowników unixODBC. Aby uzyskać więcej informacji, zobacz Instalowanie menedżera sterowników.

Kroki instalacji

Ważny

Te instrukcje dotyczą msodbcsql-11.0.2270.0.tar.gz, który jest plikiem instalacyjnym systemu Red Hat Linux. Jeśli zainstalujesz program SUSE Linux, nazwa pliku to msodbcsql-11.0.2260.0.tar.gz.

Aby zainstalować sterownik:

  1. Upewnij się, że masz uprawnienia administratora.

  2. Pobierz sterownik.
    Red Hat 5 — msodbcsql-11.0.2270.0.tar.gzSHA256: 178280daf01a49b8322cd902b6440979adacd594c01cd2a1f081dda23dbfb343
    Red Hat 6 — msodbcsql-11.0.2270.0.tar.gzSHA256: e9b6bd3d174c7753b3a3f2d541713fbc156b46254484a169caa3f459dd828f7
    SUSE Linux — msodbcsql-11.0.2260.0.tar.gz (SHA256: 86d1c5842be4f0095234a9455e18a04fdf4cc7960ec0255b37258112e2391ef5)

  3. Przejdź do katalogu, w którym pobieranie umieściło plik msodbcsql-11.0.2270.0.tar.gz. Upewnij się, że masz plik *.tar.gz zgodny z wersją systemu Linux. Aby wyodrębnić pliki, wykonaj następujące polecenie, tar xvzf msodbcsql-11.0.2270.0.tar.gz.

  4. Przejdź do katalogu msodbcsql-11.0.2270.0. Powinien zostać wyświetlony plik o nazwie install.sh.

  5. Aby wyświetlić listę dostępnych opcji instalacji, wykonaj następujące polecenie: ./install.sh.

  6. Utwórz kopię zapasową odbcinst.ini. Sterownik aktualizuje instalacje odbcinst.ini. odbcinst.ini zawiera listę sterowników zarejestrowanych w menedżerze sterowników unixODBC. Aby odnaleźć lokalizację odbcinst.ini na komputerze, wykonaj następujące polecenie: odbc_config --odbcinstini.

  7. Przed zainstalowaniem sterownika wykonaj następujące polecenie: ./install.sh verify. Dane wyjściowe ./install.sh verify zgłaszają, czy komputer ma wymagane oprogramowanie do obsługi sterownika ODBC w systemie Linux.

  8. Gdy wszystko będzie gotowe do zainstalowania sterownika ODBC w systemie Linux, wykonaj polecenie: ./install.sh install. Jeśli musisz określić polecenie instalacji (bin-dir lub lib-dir), określ polecenie po opcji instalacji.

  9. Po przejrzeniu umowy licencyjnej wpisz TAK, aby kontynuować instalację.

Instalacja umieszcza sterownik w /opt/microsoft/msodbcsql/11.0.2270.0. Sterownik i jego pliki obsługi muszą znajdować się w /opt/microsoft/msodbcsql/11.0.2270.0.

Aby sprawdzić, czy sterownik MICROSOFT ODBC w systemie Linux został pomyślnie zarejestrowany, wykonaj następujące polecenie: odbcinst -q -d -n "ODBC Driver 11 for SQL Server".

Odinstalowywanie

Sterownik ODBC 11 można odinstalować w systemie Linux, wykonując następujące polecenia:

  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"

Pliki sterowników

Sterownik ODBC w systemie Linux składa się z następujących składników:

Składnik Opis
libmsodbcsql-17.X.so.X.X lub libmsodbcsql-13.X.so.X.X Plik dynamicznej biblioteki współdzielonej (so), który zawiera wszystkie funkcje sterownika. Ten plik jest instalowany w /opt/microsoft/msodbcsql17/lib64/ dla sterownika 17 i w /opt/microsoft/msodbcsql/lib64/ dla sterownika 13.
msodbcsqlr17.rll lub msodbcsqlr13.rll Towarzyszący plik zasobów biblioteki sterowników. Ten plik jest instalowany w [driver .so directory]../share/resources/en_US/
msodbcsql.h Plik nagłówka zawierający wszystkie nowe definicje potrzebne do użycia sterownika.

Uwaga: Nie można odwoływać się do pliku msodbcsql.h i odbcss.h w tym samym programie.

Plik msodbcsql.h jest zainstalowany w /opt/microsoft/msodbcsql17/include/ dla sterownika 17 i w /opt/microsoft/msodbcsql/include/ dla sterownika 13.
LICENSE.txt Plik tekstowy zawierający postanowienia umowy licencyjnej End-User. Ten plik znajduje się w /usr/share/doc/msodbcsql17/ dla sterownika 17 i w /usr/share/doc/msodbcsql/ dla sterownika 13.
Informacje o wydaniu Plik tekstowy zawierający informacje o wersji. Ten plik znajduje się w /usr/share/doc/msodbcsql17/ dla sterownika 17 i w /usr/share/doc/msodbcsql/ dla sterownika 13.

Ładowanie pliku zasobu

Sterownik musi załadować plik zasobu do działania. Ten plik jest nazywany msodbcsqlr17.rll lub msodbcsqlr13.rll w zależności od wersji sterownika. Lokalizacja pliku .rll jest względna względem lokalizacji samego sterownika (so lub dylib), jak wspomniano w poprzedniej tabeli. Od wersji 17.1 sterownik próbuje również załadować plik .rll z katalogu domyślnego, jeśli ładowanie ze ścieżki względnej zakończy się niepowodzeniem. Domyślna ścieżka pliku zasobu w systemie Linux to /opt/microsoft/msodbcsql17/share/resources/en_US/.

Rozwiązywanie problemów

Jeśli wersja sterownika została wcześniej zainstalowana i zarejestrowana w systemie unixODBC, instalacja może zakończyć się niepowodzeniem z powodu błędu, takiego jak Installation failed, ODBC Driver $1 for SQL Server detected!. Aby rozwiązać ten problem, wersję tego sterownika wyrejestruj. Sterowniki można wyrejestrować za pomocą polecenia odbcinst: odbcinst -u -d -n "ODBC Driver $1 for SQL Server. (Zastąp $1 wersją sterownika zgłoszonego w błędzie instalacji). Jeśli odinstalowanie za pomocą polecenia odbcinst zakończy się niepowodzeniem, możesz ręcznie usunąć sekcje sterowników z pliku odbcinst.ini. Lokalizację pliku odbcinst.ini można znaleźć za pomocą polecenia odbcinst -j.

Jeśli nie możesz nawiązać połączenia z programem SQL Server przy użyciu sterownika ODBC, zobacz znany artykuł dotyczący problemów z rozwiązywania problemów z połączeniem.