domingo, 21 de junho de 2009

Conectando o Linux ao SQL Server 2000 via ODBC ou jDBC – Parte 2

Instalando e configurando os o unixODBC e o freeTDS no Linux

Neste Tutorial usarei o Ubuntu 9.04 - o Jaunty Jackalope - lançado em abril de 2009, instalado no Sun VirtualBox 2.2.2.

Antes de obter os pacotes, faça um telnet no terminal do ubuntu para ter certeza que está tudo ok com a conexão no SQL Server 2000.

Se aparecer como está abaixo está tudo certo e podemos continuar.

ubuntu@ubuntu-desktop:~$ telnet 192.168.56.1 1433
Trying 192.168.56.1...
Connected to 192.168.56.1.
Escape character is '^]'.

Do contrário, algo está errado com a rede ou com alguma etapa da Parte 1.

Agora vamos aos pacotes necessários:

unixODBC
FreeTDS

Obtidos de:

http://www.unixodbc.org/
http://freetds.org/

Usarei os pacotes unixODBC-2.2.14.tar.gz e o freetds-stable.tgz

1) Instalando o unixODBC

No terminal do ubuntu faça:

$sudo tar -xvzf unixODBC-2.2.12.tar.gz

$cd unixODBC*

$sudo ./configure --enable-gui=no --prefix=/usr/local

$sudo make

$sudo make install

A Opção –enable-gui=no desabilita a interface visual de configuração do odbc, que na prática não é necessária, e também porque precisa do qt, que tive problemas para instalar no ubuntu.

2) Instalando o freeTDS

$sudo tar -xvzf freetds-stable.tgz

$cd freetds*

$sudo ./configure --with-tdsver=8.0 --with-unixodbc=/usr/local

$sudo make

$sudo make install

3) Fazendo o Teste de Conexão

Depois de instalar, faça no terminal o comando tsql como descrito abaixo, pra verificar se a conexão com o Banco está ok. Troque o ip 192.168.56.1 pelo IP da máquina Windows com o SQL Server, caso seja diferente deste.

$ TDSVER=8.0 tsql –H 192.168.56.1 -p 1433 -U sa

locale is "pt_BR.UTF-8"
locale charset is "UTF-8"
Password: ****
1> select getdate()
2> go

14/06/2009 17:45
(1 row affected)
1> exit
$

Estando OK, vamos para a configuração dos arquivos freetds.conf, odbcinst.ini e odbc.ini

4) Modificando os arquivos de configuração

$tsql -C

Editando o Arquivo freetds.conf

$sudo gedit /usr/local/etc/freetds.conf

[MSTEST]
host = 192.168.56.1
port = 1433
tds version = 8.0

$odbc_config

Declarando Variáveis de Ambiente (Caso o isql e o odbcinst não funcionem)

$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

Criando a Arquivo de Conexão (Arquivo odbcinst.ini)

$gedit tds.driver.template

#Coloque estes dados no Arquivo Criado, salve e feche
[TDS]
Description = FreeTDS driver
Driver = /usr/local/lib/libtdsodbc.so
Setup = /usr/local/lib/libtdsS.so
Trace = Yes
TraceFile = /tmp/freetds.log
FileUsage = 1

$odbcinst -i -d -f tds.driver.template

Criando o Arquivo de DataSouce (Arquivo odbc.ini)

$gedit tds.datasource.template

#Coloque estes dados no Arquivo Criado, salve e feche
#Troque o Servername e o Database
[MSTEST]
Driver = TDS
Description = MS SQL Test
Trace = Yes
TraceFile = /tmp/mstest.log
Servername = 192.168.56.1
Database = bancoDados
Port = 1433

$odbcinst -i -s -f tds.datasource.template

Declarando Variáveis de Ambiente Necessárias

$export FREETDS=/usr/local/etc/freetds.conf
$export TDSHOST=192.168.56.1

Lógico, para facilitar, você pode adicionar as linhas das Variáveis de Ambiente no final do arquivo .bashrc para não precisar toda que se abrir o terminal no ubuntu ter de declará-las novamente.

$sudo gedit ~/.bashrc

5) Testando a Conexão através do isql

$ isql MSTEST –v usuario senha

+---------------------------------------+
| Connected!                              
|                                                 
| sql-statement                          
| help [tablename]                     
| quit                                          
|                                                 
+---------------------------------------+
SQL>
Pronto!
Se os parâmetros de configuração estiverem corretos, a conexão vai ser bem sucedida.

Nenhum comentário: