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".
- Alpine
- Debian
- RHEL i Oracle Linux
- SLES
- 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/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:
- sterownik Microsoft ODBC 17 dla programu SQL Server
- sterownik Microsoft ODBC 13.1 dla programu SQL Server
- sterownik Microsoft ODBC 13 dla programu SQL Server
- sterownik Microsoft ODBC 11 dla programu SQL Server
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.
- Alpine
- Debian
- RHEL i Oracle Linux
- SLES
- Ubuntu
#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.
- RHEL 7 (ODBC 13 w trybie offline)
- SLES 12 (ODBC 13 w trybie offline)
- Ubuntu 16.04 (ODBC 13 w trybie offline)
- Pobierz najnowsze
msodbcsql
.rpm
z https://packages.microsoft.com/rhel/7/prod/. - Zainstaluj zależności i sterownik.
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:
Upewnij się, że masz uprawnienia administratora.
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)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
.Przejdź do katalogu
msodbcsql-11.0.2270.0
. Powinien zostać wyświetlony plik o nazwie install.sh.Aby wyświetlić listę dostępnych opcji instalacji, wykonaj następujące polecenie: ./install.sh.
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
.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.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
lublib-dir
), określ polecenie po opcji instalacji.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:
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"
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.
Powiązana zawartość
- przykładowa aplikacja C++ ODBC
- tworzenie aplikacji
- notatki o wydaniu
- wymagania systemowe