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.
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.
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.
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:
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.
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.
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.
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
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.
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)
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.
Comments
- Anonymous
November 23, 2017
Excelente artigo !!!