Instalando o ODBC Driver for SQL Server no LINUX - Step-by-Step

 

by Nilton Pinheiro

 

Constantemente temos recebido casos de Advisory no time de suporte do Azure SQL Database de pessoas que precisam instalar o ODBC Driver for SQL Server em máquinas rodando Linux para permitir que suas aplicações se conectem com o SQL.

Normalmente passamos como referência o documento Instalando o Microsoft ODBC Driver 13.0 for SQL Server no Linux, no entanto, temos tidos situações onde mesmo com os passos descritos no documento muitos não conseguem obter sucesso na instalação e testes de conectividade com o SQL. Diante disso, resolvi escrever este artigo cobrindo um passo-a-passo mais detalhado.

Importante ressaltar que para este artigo estou considerando que você já possui um servidor com Linux, que no meu exemplo, será uma recém-criada máquina virtual do Azure com o Linux Ubuntu Server 16.04 LTS.

Obviamente também que para instalar o ODBC driver você precisará pegar uma sessão com seu servidor Linux, neste artigo eu utilizo o utilitário PuTTY para abrir uma sessão com o Linux e executar os passos descritos.

Então, considerando que muitos que estão lendo este artigo podem não saber como estabelecer uma sessão com o servidor Linux, dividirei este artigo em três etapas a saber:

1) Estabelecendo uma sessão com o servidor Linux

2) Instalando o Microsoft ODBC Driver 13.0 for SQL Server no Linux

3) Testando a conectividade ODBC com o Azure SQL Database

 

Estabelecendo uma sessão com o servidor Linux

Esta etapa é bastante simples e considerando que você já efetuou o download do utilitário PuTTY, localize o arquivo putty.exe no local onde você fez o download e execute um duplo-click sobre o mesmo.

Com o utilitário aberto, simplesmente coloque o endereço IP do seu servidor Linux no campo HostName e depois click sobre o botão Open.

clip_image002

Se neste momento aparecer um alerta de segurança informando que o server’s host key não está em cache no registro, simplesmente click em Yes para prosseguir.

Surgirá então uma janela solicitando seu usuário e senha para conexão ao servidor Linux. Neste momento é preciso informar um usuário e senha que tenha poderes administrativos no servidor.

Após inserir as informações de autenticação sua janela deverá ficar com o prompt semalhante ao da imagem abaixo.

clip_image004

A partir deste ponto você já está conectado no servidor Linux e pode seguir com a próxima etapa que é a instalação do Microsoft ODBC Driver.

 

Instalando o Microsoft ODBC Driver 13.0 for SQL Server no Linux

Como você verá nos passos seguintes, a instalação do driver é bastante simples e não requer nenhuma configuração. Então, considerando que a partir deste ponto você já está com uma sessão aberta com o seu servidor Linux, siga os passos abaixo:

1) No prompt de comando entre com o comando sudo su e tecle ENTER

2) Em seguida, entre com o comando abaixo e tecle ENTER

sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-xenial-release/ xenial main" > /etc/apt/sources.list.d/mssqlpreview.list'

3) Depois, execute também o seguinte comando

sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893

Se você executou os passos corretamente, neste momento sua janela deverá estar semelhante ao da imagem abaixo.

clip_image006

4) Agora, execute o pacote abaixo para instalar todo os pré-requisitos necessários para seguir com a instalação do ODBC Driver.

apt-get update

Neste momento sua janela deverá estar semelhante ao da imagem abaixo:

clip_image008

5) Isso feito, execute o pacote abaixo para efetuar a instalação do Microsoft ODBC driver for SQL Server. Digite Y quando perguntado se deseja continuar.

ACCEPT_EULA=Y apt-get install msodbcsql

Se tudo correu bem, neste momento sua janela deverá estar semelhante ao da imagem abaixo.

clip_image010

6) Na sequência instale também o pacote apt-get install unixodbc-dev-utf16 e digite Y quando perguntado se deseja continuar.

Após concluir a instalação do pacote, para verificar se o driver ODBC driver foi instalado e registrado com sucesso, execute o seguinte comando no prompt: odbcinst -q -d -n "ODBC Driver 13 for SQL Server" .

O resultado deverá ser como o da imagem abaixo.

clip_image012

Com este resultado podemos então concluir que o Microsoft ODBC driver for SQL Server está finalmente instalado no Linux e podemos seguir com a próxima etapa que é testar a conectividade ODBC com um database no Azure SQL Database.

 

Testando a conectividade ODBC com o Azure SQL Database

Muito bem, agora que o Microsoft ODBC driver está instalado, resta saber se ele está funcionando adequadamente. Importante destacar aqui que a partir deste ponto você pode testar a conectividade ODBC com qualquer instalação de SQL Server, seja ela, um SQL Server on-premise dentro da sua rede ou um banco de dados no Azure SQL Database.

Para executar este teste de conectividade você pode utilizar o utilitário isql, que é instalado juntamente com o driver ODBC. Então, no prompt de comando digitei isql -? apenas para verificar a presença do utilitário no Linux. Como resultado você deverá ver a lista de parâmetros do utilitário conforme apresentado na imagem abaixo.

clip_image014

Como podemos notar na imagem acima o utilirário isql requer como parâmetro um nome DSN (Data Source Name), então, o próximo passo será editar o arquivo odbc.ini para criar uma entrada DSN que contenha as informações necessárias para acesso ao servidor SQL.

Sendo assim, execute os seguintes passos:

1) Altere o prompt para o caminho /etc executando no prompt o comando cd /etc

2) Execute o comando dir odbc* (ou ls odbc*) e como mostrado na imagem abaixo, você deverá ver os dois arquivos .ini relacionados à instalação do driver ODBC

clip_image016

3) Por medida de segurança, faça uma cópia do arquivo odbc.ini executando no prompt o comando cp odbc.ini odbc_copia.ini

Para validar a criação do arquivo reexecute o comando dir odbc* e você deverá ver o novo arquivo criado.

4) Isso feito, abra o arquivo odbc.ini para edição utilizando o comando abaixo:

nano odbc.ini

Isso abrirá o arquivo odbc.ini (vazio neste momento) para edição, então copie o bloco abaixo e cole-o dentro da janela de edição.

[SQLTESTE]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.1.0
Database = MySQLDB
Server = tcp:nomeservidor.database.windows.net,1433

IMPORTANTE : No bloco acima, não esqueça de alterar nomeservidor para o nome do seu servidor SQL Server e MySQLDB para o nome da sua base de dados. Note que no exemplo eu utilizo um servidor do Azure SQL Database. Caso deseje fazer um teste com um SQL Server on-premise, substitua todo o conteúdo para o parâmetro “Server” com o nome da sua instância SQL Server. Ficando algo como: Server=MySQLServer

Após copiar o bloco acima, sua janela deverá estar igual ao da imagem abaixo. Então pressione Ctrl+X para sair e em seguida Y para salvar o arquivo.

clip_image018

5) Isso feito, é preciso apenas executar o utiltário isql com a sintaxe abaixo. Lembrando que os parâmetros usuario e senha são as suas credenciais de usuário e senha no banco de dados do SQL Server.

isql <DSN_name> <usuario> <senha>

Exemplo: isql SQLTESTE UserSQL01 SenhaUserSQL01

Se você configurou tudo certo, deverá ver o sucesso da conexão e o prompt SQL> .

A partir deste ponto, você já está conectado no SQL Server e pode executar qualquer comando T-SQL. Um exemplo pode ser visto na imagem abaixo. (digite quit quando estiver pronto para sair do isql)

clip_image020

Muito bem pessoal, a partir deste ponto temos então a confirmação que o ODBC driver for SQL Server está instalado no Linux e funcionando corretamente. Então, basta configurar suas aplicações Linux corretamente e passar a utilizar o SQL Server/Azure SQL DB.