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';
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 😀