Partilhar via


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'.

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 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.

#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.

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:

  1. Certifique-se de que você tem permissão de root.

  2. 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)

  3. 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.

  4. Mude para o diretório msodbcsql-11.0.2270.0 e lá você verá um arquivo chamado install.sh.

  5. Para ver uma lista das opções de instalação disponíveis, execute o seguinte comando: ./install.sh.

  6. 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.

  7. 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.

  8. 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 ou lib-dir), especifique o comando após a opção install.

  9. 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:

  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"

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.