Beyond OS

Tecnologia em ambientes empresariais, focado em Software Livre e aquilo que der na telha

Subscribe to Beyond OS
Technorati
del.icio.us
18.abr.2008

Acessando SQL Server do Linux

postado por Renê Teixeira Francisco
8  100x75 unixodbc logo small2 Acessando SQL Server do Linux 10  100x75 freetdslogo3 Acessando SQL Server do Linux

UnixODBC é um configurador odbc open source, para ambientes “não-Windows”, que possibilita que máquinas linux se conectem em qualquer banco de dados externo que possua driver ODBC disponível. Ele atende bem às expectativa, entretanto, não recebe atualizações desde 2006, dando sinal que o projeto está um pouco abandonado. Existe outro projeto, o iODBC, que está bem mais ativo e vale dar uma olhada, mas como o unixODBC me atende vou dar atenção para ele aqui nessas instruções.

Bom no meu caso quero me conectar a um banco SQL server, ai que entra o FreeTDS. Este último é um driver odbc open source para se conectar à bancos SQL server ou Sybase.

Vamos deixar de papo e instalar os dois. No meu caso estou usando o Ubuntu, o que torna tudo muito fácil, para instalar o unixODBC basta:

root@laprene:/ # apt-get install unixodbc

Ele vai trazer as dependências e pedir as confirmações necessárias, confirme tudo e prossiga para instalação do FreeTDS:

root@laprene:/ # apt-get install tdsodbc

No ubuntu o FreeTDS usa só o nome tdsodbc, mas não se preocupe é o próprio.

Caso você não utilize o Ubuntu ou qualquer distribuição Debian based não se desespere, baixe o fonte do unixODBC e do FreeTDS, descompacte-os cada um em sua pasta e os compile com a famosa sequência de comandos:

root@laprene:/ # ./configure
root@laprene:/ # make
root@laprene:/ # make install

Na maioria das vezes isso vai funcionar, caso queira mudar algo na instalação leia o README e o INSTALL presente na raiz do diretório onde cada um deles foi descompactado.

Após a instalação vamos para a configuração. Existem 2 formas de fazer isso: direto nos arquivos de configuração (meu preferido) ou pela interface gráfica do unixODBC.

Antes de mais nada defina uma variável de ambiente para que os sistemas que utilizarem a conexão odbc possam encontrar o caminho adequado para o driver libodbc.so.1.0.0.

root@laprene:/ # export LIB_ODBC_DRIVER_MANAGER=/usr/lib/libodbc.so.1.0.0

Arquivos de Configuração

São dois arquivos de configuração: odbc.ini e odbcinst.ini .

odbcinst.iniConfigura o driver que vai ser utilizado no ODBC, no caso o Freetds.
odbc.iniConfigura os parâmetros de log e trace do ODBC e os Data Source Name (DSN).

Vamos fazer da forma como manda o manual de instalação do unixODBC, não vamos criar direto os arquivos, vamos criar templates de configuração e depois vamos gerar os arquivos com a ferramenta de linha de comando odbcinst. Crie os 2 templates conforme passado abaixo, substituindo o que for necessário para o seu ambiente:

tds.driver.template (odbcinst.ini)tds.datasource.template (odbc.ini)
[FreeTDS]
Description = v0.63 with protocol v8.0
Driver = /usr/lib/odbc/libtdsodbc.so
[MSSQL]
Driver = FreeTDS
Description = Metrics
Trace = No
Server = 192.168.0.201
Port = 1433
Database = MT_Ibratec

Salve estes arquivos em um diretório qualquer e, como root, execute os comandos abaixo:

root@laprene:/ # odbcinst -i -d -f tds.driver.template
root@laprene:/ # odbcinst -i -s -f tds.datasource.template

Pronto, os aquivos odbc.ini e odbcinst.ini foram criados no diretório /etc. Caso queira ter acesso ao banco de dados utilizando outro usuário, logue como este usuário e execute novamente o comando “odbcinst -i -s -f tds.datasource.template”, tenha certeza que este usuário tem permissão de leitura no arquivo “tds.datasource.template”.

Para testar a conexão utilize o comando isql, que faz parte do pacote do unixODBC. O comando tem o seguinte perfil:

isql DSN [UID [PWD]] [options]

No caso da configuração que fizemos aqui ficaria assim:

root@laprene:/ # isql MSSQL sa “senha sem as aspas”
root@laprene:/ # SQL>

Se você receber o prompt “SQL>” sua conexão foi estabelecida e provavelmente tudo estará funcionando adequadamente.

Interface Gráfica

1) Para subir a interface gráfica execute na linha de comando:

root@laprene:/ # ODBCConfig

Nesse momento irá aparecer a seguinte tela:

16  400x300 unixodbc telainicial Acessando SQL Server do Linux

2) A primeira coisa a fazer é ir à aba “Drivers” para configurarmos os dados do driver Freetds.

12  400x300 unixodbc driver Acessando SQL Server do Linux

Clique em “Add” e configure as informações adequadas conforme tela abaixo.

13  400x300 unixodbc driverconf Acessando SQL Server do Linux

3) Vamos configurar o DSN. Existem duas opções: um específico do usuário(User DSN) e outro comum a todos usuários da máquina (System DSN). Isso é importante no caso de deixar uma conexão ao banco disponível apenas para um usuário da máquina, como este não é o caso vamos configurar o “System DSN”.

14  400x300 unixodbc dsn Acessando SQL Server do Linux

Clique em “Add”.

15  400x300 unixodbc dsnconf Acessando SQL Server do Linux

Se repararmos nesta última tela temos o campo “Servername”. Se voltarmos aos templates de configuração do DSN vamos perceber que não existe este campos e sim o “Server”. Este é um bug que o unixODBC tem, se o “Servername” for configurado o odbc não irá funcionar. Neste caso deixe o campo “Servername” em branco e no final vá ao arquivo /etc/odbc.ini e inclua a linha “Server = IP Banco”.

Para testar a conexão utilize o comando isql, como discutido acima, ou use o Datamanager:

root@laprene:/ # DataManager

17  400x300 unixodbc datamanager Acessando SQL Server do Linux

Informe o ID e o PWD, se a árvore de tabelas aparecer do lado direto a conexão está funcionando.

Pronto configurações concluídas. Agora qualquer aplicação que precisa acessar um banco SQL Server só precisa apontar para o ODBC configurado e ela irá funcionar do linux. Isso é muito útil para aplicações windows rodando no linux com o programa wine.

Até a próxima.

Related Posts with Thumbnails

Posts Relacionados

Compartilhe:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • email
  • LinkedIn
  • PDF
  • Reddit
  • StumbleUpon
  • Technorati
  • Twitter
  • FriendFeed
  • Rec6

Comente

Performance Optimization WordPress Plugins by W3 EDGE