Installare Microsoft ODBC Driver for SQL Server (Linux)
Questo articolo illustra come installare Microsoft ODBC Driver for SQL Server in Linux. Sono inoltre incluse le istruzioni per gli strumenti della riga di comando facoltativi per SQL Server (bcp
e sqlcmd
) e le intestazioni di sviluppo unixODBC.
Questo articolo fornisce i comandi per l'installazione del driver ODBC dalla shell Bash. Se si vogliono scaricare direttamente i pacchetti, vedere Scaricare ODBC Driver for SQL Server.
Microsoft ODBC 18
Le sezioni seguenti illustrano come installare Microsoft ODBC Driver 18 dalla shell Bash per diverse distribuzioni Linux. Le distribuzioni supportate sono Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES) e Ubuntu. A partire dalla versione 18.4, per accettare automaticamente il contratto di licenza durante l'installazione del driver non Alpine Linux (.deb o rpm), è possibile creare il file "/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
Nota
È necessaria la versione del driver 17.5 o versione successiva per il supporto di Alpine.
Versioni precedenti
Nelle sezioni seguenti vengono fornite le istruzioni per l'installazione delle versioni precedenti di Microsoft ODBC Driver in Linux. Le informazioni riguardano le versioni seguenti del driver:
- Driver Microsoft ODBC 17 per SQL Server
- Microsoft ODBC Driver 13.1 for SQL Server
- Microsoft ODBC Driver 13 for SQL Server
- Microsoft ODBC Driver 11 for SQL Server
Microsoft ODBC 17
Le sezioni seguenti illustrano come installare Microsoft ODBC Driver 17 dalla shell Bash per diverse distribuzioni Linux.
Importante
Se è stato installato il pacchetto msodbcsql
v17 rimasto disponibile per poco tempo, rimuoverlo prima di installare il pacchetto msodbcsql17
. Si eviteranno così conflitti. È possibile installare il pacchetto msodbcsql17
side-by-side con il pacchetto msodbcsql
v13.
#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
Nota
È necessaria la versione del driver 17.5 o versione successiva per il supporto di Alpine.
ODBC 13.1
Le sezioni seguenti illustrano come installare Microsoft ODBC Driver 13.1 dalla shell Bash per diverse distribuzioni 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
Le sezioni seguenti illustrano come installare Microsoft ODBC Driver 13 dalla shell Bash per diverse distribuzioni Linux.
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
Installazione offline
Se si deve installare il driver Microsoft ODBC 13 in un computer senza connessione Internet, sarà necessario risolvere manualmente le dipendenze del pacchetto. Il driver Microsoft ODBC 13 presenta le dipendenze dirette seguenti:
- 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
Ognuno di questi pacchetti ha a sua volta le proprie dipendenze, che potrebbero o meno essere presenti nel sistema. Per una soluzione generale di questo problema, fare riferimento alla documentazione della gestione pacchetti per la distribuzione: Red Hat, Ubuntu e SUSE
È anche una pratica comune scaricare manualmente tutti i pacchetti dipendenti, inserirli nel computer di installazione, quindi installare manualmente ogni pacchetto e terminare con il pacchetto Microsoft ODBC Driver 13.
- Scaricare la versione più recente di
msodbcsql
.rpm
da https://packages.microsoft.com/rhel/7/prod/. - Installare le dipendenze e il driver.
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
Le sezioni seguenti illustrano come installare Microsoft ODBC Driver 11 in Linux. Prima di poter usare il driver, installare Gestione driver unixODBC. Per altre informazioni, vedere Installazione di Gestione driver.
Passaggi di installazione
Importante
Queste istruzioni fanno riferimento a msodbcsql-11.0.2270.0.tar.gz
, il file di installazione per Red Hat Linux. Se si installa per SUSE Linux, il nome del file è msodbcsql-11.0.2260.0.tar.gz
.
Per installare il driver:
Assicurarsi di disporre dell'autorizzazione di radice.
Scaricare il driver.
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)Passare alla directory in cui il download ha inserito il file
msodbcsql-11.0.2270.0.tar.gz
. Verificare di avere il file *.tar.gz corrispondente alla versione di Linux in uso. Per estrarre i file, eseguire il comando seguente,tar xvzf msodbcsql-11.0.2270.0.tar.gz
.Passare alla directory
msodbcsql-11.0.2270.0
contenente un file denominato install.sh.Per visualizzare un elenco delle opzioni di installazione disponibili, eseguire il comando seguente: ./install.sh
Eseguire il backup di odbcinst.ini. L'installazione del driver aggiorna odbcinst.ini. odbcinst.ini contiene l'elenco dei driver registrati in Gestione driver unixODBC. Per individuare il percorso di odbcinst.ini nel computer in uso, eseguire il comando seguente:
odbc_config --odbcinstini
.Prima di installare il driver, eseguire il comando seguente:
./install.sh verify
. L'output di./install.sh verify
segnala se il computer dispone del software necessario per supportare il driver ODBC in Linux.Quando si è pronti a installare il driver ODBC in Linux, eseguire il comando seguente:
./install.sh install
. Se è necessario specificare un comando di installazione (bin-dir
olib-dir
), specificare il comando dopo l'opzione installa.Dopo aver esaminato il contratto di licenza, digitare YES per continuare l'installazione.
L'installazione inserisce il driver in /opt/microsoft/msodbcsql/11.0.2270.0
. Il driver e i relativi file di supporto devono trovarsi in /opt/microsoft/msodbcsql/11.0.2270.0
.
Per verificare che il driver ODBC Microsoft sia stato registrato in Linux, eseguire il comando seguente: odbcinst -q -d -n "ODBC Driver 11 for SQL Server"
.
Disinstalla
È possibile disinstallare il driver ODBC 11 in Linux eseguendo i comandi seguenti:
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"
File dei driver
Il driver ODBC in Linux include i componenti seguenti:
Componente | Descrizione |
---|---|
libmsodbcsql-17.X.so.X.X o libmsodbcsql-13.X.so.X.X | File della libreria di collegamento dinamico dell'oggetto condiviso (so ) che contiene tutte le funzionalità del driver. Questo file viene installato in /opt/microsoft/msodbcsql17/lib64/ per Driver 17 e in /opt/microsoft/msodbcsql/lib64/ per Driver 13. |
msodbcsqlr17.rll oppure msodbcsqlr13.rll |
File di risorse associato per la libreria del driver. Questo file viene installato in [driver .so directory]../share/resources/en_US/ |
msodbcsql.h | File di intestazione che contiene tutte le nuove definizioni necessarie per usare il driver. Nota: non è possibile fare riferimento a msodbcsql.h e odbcss.h nello stesso programma. msodbcsql.h viene installato in /opt/microsoft/msodbcsql17/include/ per Driver 17 e in /opt/microsoft/msodbcsql/include/ per Driver 13. |
LICENSE.txt | File di testo che contiene i termini del contratto di licenza con l'utente finale. Questo file viene inserito in /usr/share/doc/msodbcsql17/ per Driver 17 e in /usr/share/doc/msodbcsql/ per Driver 13. |
RELEASE_NOTES | File di testo che contiene le note sulla versione. Questo file viene inserito in /usr/share/doc/msodbcsql17/ per Driver 17 e in /usr/share/doc/msodbcsql/ per Driver 13. |
Caricamento del file di risorse
Perché possa funzionare, il driver deve caricare il file di risorse. Questo file è denominato msodbcsqlr17.rll
o msodbcsqlr13.rll
a seconda della versione del driver. La posizione del file .rll
dipende dalla posizione del driver stesso (so
o dylib
), come indicato nella tabella precedente. A partire dalla versione 17.1 il driver tenta anche di caricare il file .rll
dalla directory predefinita se il caricamento dal percorso relativo non riesce. Il percorso del file di risorse predefinito in Linux è /opt/microsoft/msodbcsql17/share/resources/en_US/
.
Risoluzione dei problemi
Se una versione del driver è stata installata e registrata in precedenza con unixODBC, l'installazione potrebbe non riuscire, segnalando un errore simile a Installation failed, ODBC Driver $1 for SQL Server detected!
. Per risolvere il problema, annullare la registrazione di quella versione del driver. È possibile annullare la registrazione dei driver tramite il comando odbcinst
: odbcinst -u -d -n "ODBC Driver $1 for SQL Server
. (Sostituire $1
con la versione del driver segnalato nell'errore di installazione). Se la disinstallazione tramite il comando odbcinst
non riesce, è possibile rimuovere manualmente sezioni del driver dal file odbcinst.ini
. È possibile trovare il percorso del file odbcinst.ini
tramite il comando odbcinst -j
.
Se non è possibile effettuare una connessione a SQL Server tramite il driver ODBC, vedere l'articolo sui problemi noti dedicato alla risoluzione dei problemi di connessione.