Protheus no Linux – Parte 03

Introdução

No post anterior, instalamos na VM Ubuntu um Protheus Server, instância única, usando um c-Tree Server DLL (ou BoundServer). Agora, vamos instalar um banco de dados MYSQL e a UnixODBC nesta mesma VM.

Instalando

Após iniciar a VM do Ubuntu Linux — montada no primeiro post –, executamos os comandos abaixo, para instalar o MYSQL e a UNIXODBC, respectivamente:

sudo apt-get install mysql-server mysql-client
sudo apt-get install libmyodbc unixodbc-bin unixodbc

Com estes comandos, nesta versão do Sistema Operacional, o MySQL 5.5 será instalado. Durante a instalação, será perguntada uma senha do usuário “root” do MySQL. Insira uma senha e guarde-a, ela será necessária nas etapas posteriores.

Criando a base no MySQL

Após a instalação, o banco MYSQL já deve estar no ar, mas sem nenhuma base de dados. Utilize o comando “mysql” para acessar o interpretador de comandos do MySql, com a sintaxe abaixo:

mysql -u root -p

Uma vez dentro do interpretador de comandos do MySql, execute os comandos abaixo para criar a sua base de dados. Troque o conteúdo de ‘usuariodebanco’ para um nome de usuário que você queira criar no banco de dados para ter acesso a essa base. Você pode dar o mesmo nome do usuário que você criou para o sistema operacional. E, no lugar de ‘senha’, coloque a senha que você quer atribuir a este usuário, para ele acessar o Banco de Dados.

create database envp11mysql;
grant all on envp11mysql.* to 'usuariodebanco' identified by 'senha';

Mysql Create DB

Configurando a UnixODBC

Para não acessarmos diretamente a .so ( shared object library ) do banco de dados, vamos configurar a UnixODBC no Linux para o Mysql. Primeiro, vamos entrar em “root” mode no Linux, com o comando abaixo:

sudo su

Agora, vamos ver exatamente onde foram instaladas as libs ODBC do MySQL, usando o comando abaixo:

find / -name 'lib*odbc*.so'

O resultado esperado deve ser bem próximo de:

/usr/lib/x86_64-linux-gnu/odbc/libodbcdrvcfg2S.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcnnS.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcdrvcfg1S.so
/usr/lib/x86_64-linux-gnu/odbc/libodbctxtS.so
usr/lib/x86_64-linux-gnu/odbc/liboraodbcS.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
/usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so
/usr/lib/x86_64-linux-gnu/odbc/liboplodbcS.so
/usr/lib/x86_64-linux-gnu/odbc/libodbcminiS.so

Os arquivos que nos interessam são os dois em destaque:

libmyodbc.so = MySQL Driver API 
libodbcmyS.so = MySQL Driver Setup

Agora, vamos criar a configuração de instalação da UnixODBC. Usando o editor de arquivos texto no Linux, crie o arquivo odbcinst.ini na pasta /etc/

sudo vi /etc/odbcinst.ini

O conteúdo do arquivo deve ser o seguinte:

[odbc_mysql]
Description     = ODBC for MySQL
Driver          = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup           = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
UsageCount      = 1

Agora, vamos ver a onde está a configuração de Sockets do MySQL, usando o comando abaixo:

mysqladmin -u root -p version

O resultado deve ser parecido com este aqui:

mysqladmin  Ver 8.42 Distrib 5.5.49, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.5.49-0ubuntu0.14.04.1
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 23 min 17 sec


Threads: 1  Questions: 583  Slow queries: 0  Opens: 189  
Flush tables: 1  Open tables: 41  Queries per second avg: 0.417

O que nos interessa é a informação em negrito: O caminho do Unix Socket em uso pelo Banco de Dados. Agora, baseado no que já temos até agora, vamos criar a configuração de ODBC efetivamente, apontando para os drivers.

vi /etc/odbc.ini

Podemos partir do seguinte conteúdo:

[envp11mysql]
Description = DSN para Banco P11 no MySQL
Driver      = odbc_mysql
Server      = localhost
Port        = 3306
Socket      = /var/run/mysqld/mysqld.sock
Database    = envp11mysql
Option      = 3
ReadOnly    = No

Na prática, os nomes das seções nos arquivos de configuração somos nós que definimos. No arquivo odbcinst.ini, cada seção configura um driver de banco diferente. No arquivo odbc.ini, cada seção corresponde a uma entrada de DSN da Odbc, que usa um determinado driver.

Após criar e editar os arquivos, vamos efetivar o registro das informações na UnixODBC, inicialmente instalando o Driver que configuramos, usando o comando abaixo.

odbcinst -i -d -f /etc/odbcinst.ini

Agora, vamos instalar a nossa configuração de DSN como “System DSN”, usando o comando abaixo:

odbcinst -i -s -l -f /etc/odbc.ini

Agora, usando o comando abaixo, podemos consultar quais DSN de sistemas estão instaladas:

odbcinst -s -q

E, finalmente, podemos testar a conexão com o MySQL via UnixODBC, usando o comando abaixo, trocando “MYSQLUSER” pelo usuário que nós criamos para o banco envp11mysql , e “MYSQLUSERPASSWORD” trocando pela senha utilizada.

isql -v myodbc_mysql_dsn MYSQLUSER MYSQLUSERPASSWORD

O resultado esperado é :

 

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

 

Para sair do interpretador de comandos SQL, use a instrução “quit”. Com isso, já temos o MySQL instalado, um banco criado, e a UnixODBC devidamente configurada.

Referências

“Kafee Talk – How to setup and configure MySQL with unixODBC under Ubuntu 14.04”. Disponível em <http://www.kaffeetalk.de/how-to-setup-and-configure-mysql-with-unixodbc-under-ubuntu-14-04/>. Acesso em 16 de Julho de 2016.

Conclusão

Sim, foi mais simples e mais rápido do que imaginávamos. E, com mais um ou dois passos, você configura o MySQL no Linux para aceitar conexões TCP remotas, e pode instalar uma ODBC no Windows, e usar o MYSQL no Linux — Basta editar o arquivo /etc/mysql/my.cnf , localizar a configuração bind-address, e trocar ela para 0.0.0.0 😉 Mas, o foco é usarmos o MySQL no Linux, com o DBAccess também no Linux. E esta etapa será abordada no próximo post dese assunto !!!

Agradeço a todos pela audiência, e lhes desejo TERABYTES DE SUCESSO 😀 

Anúncios

5 comentários sobre “Protheus no Linux – Parte 03

  1. Perfeito Júlio meus parabéns simples ágil.
    Ninguém mais vai apanha com isso por falta de documentação. Como eu não primeira vez q fui fazer esse cara rodas.
    novamente meus parabéns

    Curtido por 1 pessoa

  2. Prezado!
    Achei ótimo o artigo, no entanto estou tendo um problema pra configurar minha distribuição:
    Estou usando o Ubuntu Desktop 16.04 32bits, estou empacado no passo da Configurando a UnixODBC:

    na minha instalação não encontrei o libmyodbc.so, como resolver?

    Curtido por 1 pessoa

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s