Instale o driver ODBC da Microsoft para SQL Server (Linux)
Este artigo explica como instalar o driver ODBC da Microsoft para SQL Server no Linux. Ele também inclui instruções para as ferramentas de linha de comando opcionais para SQL Server (bcp
e sqlcmd
) e os cabeçalhos de desenvolvimento unixODBC.
Este artigo fornece comandos para instalar o driver ODBC a partir do shell bash. Se quiseres descarregar os pacotes diretamente, consulta Descarregar o Driver ODBC para SQL Server.
Microsoft ODBC 18
As seções a seguir explicam como instalar o driver ODBC da Microsoft 18 a partir do shell bash para diferentes distribuições Linux. As distribuições suportadas são Alpine Linux, Debian, Red Hat Enterprise Linux (RHEL), Oracle Linux, SUSE Linux Enterprise Server (SLES) e Ubuntu. A partir da versão 18.4, para aceitar o EULA automaticamente ao instalar o driver Linux não alpino (.deb ou .rpm), você pode criar o arquivo '/opt/microsoft/msodbcsql18/ACCEPT_EULA'.
- Alpino
- Debian
- RHEL e 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
Observação
A versão do driver 17.5 ou superior é necessária para o suporte da Alpine.
Versões anteriores
As seções a seguir fornecem instruções para instalar versões anteriores do driver ODBC da Microsoft no Linux. As seguintes versões de driver são cobertas:
- Microsoft ODBC driver 17 para SQL Server
- Microsoft ODBC driver 13.1 para SQL Server
- Microsoft ODBC driver 13 para SQL Server
- Microsoft ODBC driver 11 para SQL Server
Microsoft ODBC 17
As seções a seguir explicam como instalar o driver ODBC da Microsoft 17 a partir do shell bash para diferentes distribuições Linux.
Importante
Se você instalou o pacote msodbcsql
v17 que estava brevemente disponível, você deve removê-lo antes de instalar o pacote msodbcsql17
. Deste modo, evitar-se-ão conflitos. O pacote msodbcsql17
pode ser instalado lado a lado com o pacote msodbcsql
v13.
- Alpino
- Debian
- RHEL e 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
Observação
A versão do driver 17.5 ou superior é necessária para o suporte da Alpine.
ODBC 13.1
As seções a seguir explicam como instalar o driver ODBC da Microsoft 13.1 a partir do shell bash para diferentes distribuições 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
As seções a seguir explicam como instalar o driver ODBC da Microsoft 13 a partir do shell bash para diferentes distribuições 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
Instalação offline
Se precisar instalar o Microsoft ODBC Driver 13 num computador sem conexão à Internet, deve resolver manualmente as dependências do pacote. O Microsoft ODBC Driver 13 tem as seguintes dependências diretas:
- 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
Cada um desses pacotes, por sua vez, tem suas próprias dependências, que podem ou não estar presentes no sistema. Para obter uma solução geral para esse problema, consulte a documentação do gerenciador de pacotes da sua distribuição: Red Hat, Ubuntue SUSE
Também é comum baixar manualmente todos os pacotes dependentes e colocá-los juntos no computador de instalação e, em seguida, instalar manualmente cada pacote por vez, terminando com o pacote Microsoft ODBC Driver 13.
- Descarregue o
msodbcsql
.rpm
mais recente do https://packages.microsoft.com/rhel/7/prod/. - Instale dependências e o 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
As seções a seguir explicam como instalar o driver Microsoft ODBC 11 no Linux. Antes de poder usar o driver, instale o gerenciador de driver unixODBC. Para obter mais informações, consulte Instalando o Gerenciador de Driver.
Etapas de instalação
Importante
Estas instruções referem-se ao msodbcsql-11.0.2270.0.tar.gz
, que é o arquivo de instalação do Red Hat Linux. Se você instalar para o SUSE Linux, o nome do arquivo será msodbcsql-11.0.2260.0.tar.gz
.
Para instalar o driver:
Certifique-se de que você tem permissão de root.
Faça o download do 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)Mude para o diretório onde o download colocou o arquivo
msodbcsql-11.0.2270.0.tar.gz
. Certifique-se de que tem o ficheiro *.tar.gz que corresponde à sua versão do Linux. Para extrair os ficheiros, execute o seguinte comando,tar xvzf msodbcsql-11.0.2270.0.tar.gz
.Mude para o diretório
msodbcsql-11.0.2270.0
e lá você verá um arquivo chamado install.sh.Para ver uma lista das opções de instalação disponíveis, execute o seguinte comando: ./install.sh.
Faça um backup de odbcinst.ini. As atualizações de instalação do driver odbcinst.ini. odbcinst.ini contém a lista de drivers registados com o Gestor de Drivers unixODBC. Para descobrir a localização de odbcinst.ini no seu computador, execute o seguinte comando:
odbc_config --odbcinstini
.Antes de instalar o driver, execute o seguinte comando:
./install.sh verify
. A saída de./install.sh verify
relata se o seu computador tem o software necessário para suportar o driver ODBC no Linux.Quando estiver pronto para instalar o driver ODBC no Linux, execute o comando:
./install.sh install
. Se você precisar especificar um comando install (bin-dir
oulib-dir
), especifique o comando após a opção install.Depois de revisar o contrato de licença, digite SIM para continuar com a instalação.
A instalação coloca o driver em /opt/microsoft/msodbcsql/11.0.2270.0
. O driver e seus arquivos de suporte devem estar em /opt/microsoft/msodbcsql/11.0.2270.0
.
Para verificar se o driver ODBC da Microsoft no Linux foi registrado com êxito, execute o seguinte comando: odbcinst -q -d -n "ODBC Driver 11 for SQL Server"
.
Desinstalar
Você pode desinstalar o driver ODBC 11 no Linux executando os seguintes comandos:
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"
Arquivos de driver
O driver ODBC no Linux consiste nos seguintes componentes:
Componente | Descrição |
---|---|
libmsodbcsql-17.X.so.X.X ou libmsodbcsql-13.X.so.X.X | O arquivo de biblioteca dinâmica de objeto compartilhado (so ) que contém todas as funcionalidades do driver. Este arquivo é instalado no /opt/microsoft/msodbcsql17/lib64/ para o Driver 17 e no /opt/microsoft/msodbcsql/lib64/ para o Driver 13. |
msodbcsqlr17.rll ou msodbcsqlr13.rll |
O arquivo de recurso que acompanha a biblioteca de drivers. Este ficheiro está instalado em [driver .so directory]../share/resources/en_US/ |
msodbcsql.h | O arquivo de cabeçalho que contém todas as novas definições necessárias para usar o driver. Nota: Não é possível fazer referência a msodbcsql.h e odbcss.h no mesmo programa. msodbcsql.h é instalado no /opt/microsoft/msodbcsql17/include/ para Driver 17 e no /opt/microsoft/msodbcsql/include/ para Driver 13. |
LICENSE.txt | O arquivo de texto que contém os termos do End-User Contrato de Licença. Este arquivo é colocado em /usr/share/doc/msodbcsql17/ para Driver 17 e em /usr/share/doc/msodbcsql/ para Driver 13. |
NOTAS_DE_LIBERTAÇÃO | O ficheiro de texto que contém notas de versão. Este arquivo é colocado em /usr/share/doc/msodbcsql17/ para Driver 17 e em /usr/share/doc/msodbcsql/ para Driver 13. |
Carregamento de arquivos de recursos
O driver precisa carregar o arquivo de recurso para funcionar. Esse arquivo é chamado de msodbcsqlr17.rll
ou msodbcsqlr13.rll
dependendo da versão do driver. A localização do arquivo .rll
é relativa à localização do próprio driver (so
ou dylib
), como observado na tabela anterior. A partir da versão 17.1, se o carregamento do caminho relativo falhar, o driver também tenta carregar o .rll
do diretório padrão. O caminho do arquivo de recurso padrão no Linux é /opt/microsoft/msodbcsql17/share/resources/en_US/
.
Solução de problemas
Se uma versão do driver foi instalada anteriormente e registrada com unixODBC, a instalação pode falhar com um erro como Installation failed, ODBC Driver $1 for SQL Server detected!
. Para resolver o problema, cancele o registro dessa versão do driver. Você pode cancelar o registro de drivers através do comando odbcinst
: odbcinst -u -d -n "ODBC Driver $1 for SQL Server
. (Substitua $1
pela versão do driver relatada no erro de instalação.) Se a desinstalação através do comando odbcinst
falhar, pode remover manualmente as secções do controlador do ficheiro odbcinst.ini
. Você pode encontrar a localização do arquivo odbcinst.ini
através do comando odbcinst -j
.
Se você não conseguir estabelecer uma conexão com o SQL Server usando o driver ODBC, consulte o artigo de problemas conhecidos sobre solução de problemas de conexão.
Conteúdo relacionado
- de aplicação ODBC de exemplo C++
- Desenvolvimento de Aplicações
- notas de versão
- requisitos do sistema