You are on page 1of 18

Protheus no Linux Parte 01

Introduo
O TOTVS Application Server ( ou Protheus Server ), bem como o DBAccess e outros
produtos da TOTVS, tambm possuem verses para serem instaladas em Servidores e
Desktops com sistema operacional Linux. Neste primeiro post, vamos ver como preparar uma
VM com Ubuntu Server para instalar um TOTVS Application Server.
O Linux
Vou pular toda a parte histrica deste sistema operacional, voc encontra muito material
sobre isso na Wikipedia. Existem atualmente vrias distribuies gratuitas e inclusive pagas
de Linux, desenvolvidas para uso geral ou para cenrios e ambientes especficos, verses
Server para servidores dedicados de aplicaes e verses Desktop para uso
dirio de aplicativos com interface grfica e janelas, entre outras para uso embarcado em
dispositivos, etc.
Estreitando o leque de aplicaes para os produtos TOTVS Application Server e TOTVS
SmartClient, existem verses e distribuies de Linux homologadas para uso destas
aplicaes. Como cada distribuio possui verses diferentes e alguns comportamentos
distintos, atualmente apenas verses de Linux Server so homologadas para o Protheus
Server, e verses Desktop so homologadas para uso do SmartClient. A lista de distribuies
e
verses
homologadas
est
na
TDN,
atualmente
no
link
http://tdn.totvs.com/display/tec/Plataforma+homologada+dos+produtos
Ubuntu Server
O Ubuntu Linux uma distribuio muito conhecida do Linux, derivada do Debian Linux,
muito prtica para instalao e atualizao de softwares atravs do administrador de pacotes
apt-get. Bem documentada, mantida por uma grande comunidade, possui verses
Desktop e Server. Embora (at o momento) nenhuma distribuio Ubuntu esteja oficialmente
homologada para uso do TOTVS Application Server, muito simples criar um ambiente de
testes ou desenvolvimento nesta plataforma.
Nada impede o uso desta plataforma em um ambiente de produo, porm como no foi
realizado nenhum procedimento de homologao oficial da TOTVS neste sistema
operacional, em caso de problema tcnico de uma instalao nesta plataforma, no h
suporte.
Criando a VM
Peguei uma ISO do Ubuntu Server no site oficial do Ubuntu, especificamente a verso
Ubuntu Server 14.04.4 64 Bits. ( arquivo ubuntu-14.04.4-server-amd64.iso, disponvel em
http://releases.ubuntu.com/trusty/ ) . Criei uma VM usando um VMWare Player (verso
gratuita para fins no-comerciais), com 32 GB de disco, 2 GB de RAM, 2 Cores, e uma
interface de rede Bridged para a minha VM ter acesso a Internet.

Instalando o Ubuntu Server 64


Inicialmente, voc baixa a ISO de instalao no seu HD, e configura o Drive de CD da VM
para iniciar com o disco montado. Ao iniciar a VM, aparece a tela de seleo de idioma de
interface. O Ubuntu j tem a portabilidade para portugus do Brasil, eu particularmente gosto
de usar o S.O. em Ingls mesmo.
Aps escolher o idioma pressionando <enter>, ser mostrada a tela inicial de setup. Para
escolher a instalao mnima de sistema, pressione F4. Ser mostrado um pop-up com
algumas opes, selecione com as setas a opo Install a minimal system, pressione Enter
para confirmar a escolha. Feito isso, pressione <Enter> novamente para iniciar a instalao
do Ubuntu Server. Escolha agora o idioma de instalao (English, please)
Na prxima tela, informe onde voc est. Vamos informar que estamos no Brasil mesmo.
Selecionamos Other na escolha de territrio. Na tela seguinte, escolhemos South Amrica
E, finalmente, Brazil. Na configurao de Locale, pode deixar United States mesmo.
Agora o instalador pergunta se voc quer detectar o modelo do seu teclado mediante alguns
testes de teclas, ou se voc quer escolher o modelo por uma lista. Recomendo usar o
assistente, bem simples. Aps escolher o teclado, ser executada uma etapa preparatria
rpida, e em seguida ser perguntado o nome no host para esta mquina. Eu chamei a

minha de ubuntu14 mesmo.


Depois, perguntado o nome completo do usurio da mquina. Na sequncia, perguntado
o nome desse usurio para identific-lo no sistema operacional. No meu caso, siga0984. E,
na sequncia, solicitada uma senha e confirmao de senha para o usurio criado. Na
prxima tela, o instalador pergunta se voc quer criptografar a sua pasta home. Estamos
fazendo uma VM de servidor no precisa criptogtafar a home. Agora, o instalador tenta
pegar a data e hora atuais na Internet, e determinar sua localizao. Normalmente ele acerta,
basta confirmar onde voc est (Time Zone) . E, na ltima parte, vm o setup do disco.
Vamos pra opo mais simples, Guided Use entire disk.
Na sequncia, o instalador mostra as escolhas realizadas para a partio de disco. Como a
nossa VM tm apenas um HD virtual, basta selecion-lo. E, na sequncia, na prxima tela, o
Linux j sugere as configuraes finais, basta selecionar <Ok> e prosseguir. Ao confirmar
esta etapa, comea efetivamente a instalao do Ubuntu Server. Aps a cpia de alguns
arquivos, o Ubuntu pergunta se voc est usando Proxy, para configurar o Package
Manager atravs dele podemos atualizar de forma muito fcil o sistema operacional. Se
vo est sendo usado nenhum proxy, deixamos o campo em branco e apenas teclamos
<enter> para continuar.
Aps um ou dois minutos configurando os pacotes e instalando o sistema, o instalador
pergunta se voc quer manter a sua instncia atualizada automaticamente. Normalmente eu
escolho no. Eu atualizo minha VM quando eu precisar ou quiser uma atualizao. E,
finalmente, a tela que todos esperamos: O que ns queremos de Software na nossa
instalao ? Bem, para usar o Protheus e ter um acesso legal na VM, no precisamos mais
do que as duas primeiras opes. Selecione-as com as setas e pressione a barra de espaos
para marcar ou desmarcar.
A ltima pergunta se voc quer instalar o gerenciador de boot ( GRUB loader ) na sua VM
bem, eu nunca deixei de instalar, mas no deve fazer diferena alguma para um ambiente
de testes virtualizado. E, em poucos instantes, o instalador informa que est tudo pronto, e
voc pode reiniciar a mquina ! Basta pressionar <enter> para continuar. Aps a VM
reiniciada, o boot j foi feito pelo HD da VM, e o Ubuntu pergunta pelo seu usurio. Informe o
usurio que voc criou na instalao, pressione <enter>, depois a senha, enter novamente.
Pronto ! Bem vindo ao seu Ubuntu Server 64 bits !

Preparao do Sistema Operacional


Agora, de posse da nossa VM, vamos aplicar as atualizaes de sistema operacional desde
a distribuio desta verso Para isso, digite no prompt de comando:
sudoaptgetupdate
Logo na execuo, ser perguntado novamente a senha do usurio atual. Mesmo que voc
j esteja logado, o comando sudo serve para executar uma instruo com permisses de
root ou Super User do Linux. Logo, no primeiro uso, ele vai te pedir novamente a senha do
seu usurio Este comando vai atualizar a lista de pacotes de updates disponveis nos sites
oficiais do Ubuntu. Feito isso, execute o comando abaixo, para instalar as ltimas
atualizaes das aplicaes instaladas no seu ambiente:
sudoaptgetupgrade
Caso exista alguma verso nova a atualizar, a aplicao pergunta se voc quer atualizar ou
no. Digite Y e pressione ENTER para confirmar a atualizao. O processo de atualizao
via fazer download e instalao automtica dos pacotes de aplicativos do sistema
operacional instalados no seu ambiente, automaticamente.
Terminada esta atualizao, vamos aproveitar e instalar alguns pacotes, que sero
necessrios para etapas posteriores. Inicialmente, vamos instalar o unzip, usando o
comando abaixo:

sudoaptgetinstallunzip
Para permitir um acesso via rede para a VM, e inclusive para usar um SFTP ( Secure FTP )
para transferir nossos arquivos e binrios do Protheus para dentro da VM, precisamos saber
qual o IP dela na rede. Para isso, usamos o comando abaixo:
ifconfig
Ao ser executado, ele mostra as interfaces de rede da mquina. Uma delas deve ser a eth0,
que tem um endereo IPV4 e outro IPV6. Vamos usar o IPV4, destacado em vermelho na
imagem abaixo:

Recomendo que voc instale na sua mquina Windows um Putty e um WINSCP, para
acesso via Telnet/SSH (Terminal) e acesso ao sistema de arquivos (SFTP), respectivamente.
O acesso via Putty, ao invs de acessar pela janela do Host da VM, permite operaes como
copiar e colar texto entre o terminal da VM e a mquina Windows, voc pode abrir mais de
um terminal do Putty ao mesmo tempo na mesma mquina, etc E, finalmente, para a ltima
etapa de preparao, vamos esticar um pouco os limites de handles por aplicao do
sistema operacional. Isto ser necessrio posteriormente para subir o APPServer.
Use o comando abaixo para editar o arquivo /etc/security/limits.conf:
sudovi/etc/security/limits.conf
O editor vi no muito amigvel para quem est acostumado com editores visuais, mas

quando a tarefa apenas inserir duas linhas no final da tabela, no to difcil. Basta usar
as setas para chegar ao final do arquivo, apertar a tecla [ESC], seguido da tecla I (maisculo,
para entrar no modo de insero de texto), e acrescentar as linhas abaixo:
*softnofile32768
*hardnofile32768
Com isso, aumentamos para 32768 os limites de handles para todas as aplicaes desta
instalao de sistema operacional. Para salvar o arquivo, pressione ESC para acessar o
prompt interno do editor, ento digite a string wq! ( sem as aspas ) e pressione <enter>. Isto
far com que o arquivo seja salvo, com o novo contedo agora editado, e o editor de textos
seja finalizado.

Feito isso, vamos reiniciar a VM usando o comando abaixo:


sudorebootnow
Aps reiniciar a VM, confirme se o IP da VM continua o mesmo ( usando o comando
ifconfig ), e faa o setup de uma conexo de terminal para a sua VM usando o Putty, e uma
conexo SFTP usando o WINSCP. Ambas as conexes so SSH.
Instalando o Protheus Server
Aps iniciar sua VM, verificar o IP, e abrir um terminal ( Putty ), crie uma pasta a partir da

pasta raiz do Linux, para armazenar seus ambientes e aplicaes. No lugar de <usuario>,
use o usurio que voc criou na instalao do Linux.
sudomkdir/totvs
sudochownusuario/totvs
cd/totvs
Com estes comandos, criamos a pasta, e damos as permisses de owner (dono) da pasta
ao seu usurio.
Vale lembrar de um ponto importante: todos os arquivos do Protheus no Linux, e inclusive
estruturas de diretrios, por uma questo de conveno e compatibilidade estabelecidas no
porte da aplicao para Linux, devem estar em letras minsculas.
No nosso exemplo, vamos instalar apenas um Protheus 11 Server 64 bits. Para isso, eu
proponho executar os comandos abaixo, para criar a seguinte estrutura de diretrio:
mkdir/totvs/protheus11
mkdir/totvs/protheus11/envp11
mkdir/totvs/protheus11/bin_131227a
Para o exemplo acima, eu baixei apenas o Protheus 11 Server 64 em Linux, disponibilizado
na seo de Download do portal da Totvs:
Arquivo151201P11_APPSERVER_LINUX_X64.ZIP
DescrioAPPSERVERX64700131227A
Tamanho59.6MB
Primeiro, usando o WinSCP (SFTP), copie para a pasta /totvs/protheus11/bin_131327a o
arquivo
15-12-01-P11_APPSERVER_LINUX_X64.ZIP.Aps
terminada
a
cpia,
descompacte o arquivo usando o comando abaixo:
unzip151201P11_APPSERVER_LINUX_X64.ZIP
A descompactao deve criar duas pastas, uma para os arquivos do Protheus Server , outra
para o Smartclient Linux. Renomeie as pastas geradas para appserver64 e smartclient,
respectivamente, usando o comando mv, a partir da pasta /totvs/bin_131227a
mvappserverLinux_x64appserver64
mvsmartclientLinuxsmartclient
Entre na pasta appserver64, e descompacte todos os arquivos da pasta appserver64,
usando os comandos abaixo:
cdappserver64
tarzxvfappsrvlinux_x64.tar.gz
tarzxvfprinter_x64.tar.gz
tarzxvflibctreetmp_x64.tar.gz
Aps descompactar, voc pode remover todos estes arquivos com o comando:
rmf*.tar.gz
Agora, vamos ajustar as propriedades de execuo dos arquivos *.so do binrio, usando o
comando:
sudochmod777*.so
Para o ambiente do ERP, Protheus 11, podemos criar toda a estrutura de pastas necessrias
a partir da pasta /totvs/envp11, usando os comandos abaixo:
cd/totvs/protheus11/envp11
mkdirapo
mkdirdata
mkdirsystem
mkdirsystemload
Voc pode pegar um repositrio de objetos do portal, por exemplo o arquivo 16-06-14-BRAEUA-PAR-URU-TTTP110.RPO, bem como os demais arquivos necessrios para criar um
ambiente do zero, ou pode separar os arquivos necessrios de seu ambiente Windows para
mont-lo no Linux. O importante que a verso do repositrio do ERP deve ser a mesma
verso dos arquivos de sistema (pasta systemload).

Para um ambiente mnimo, voc precisa da pasta systemload do seu ambiente Windows
copiado na ntegra para o Linux, e na pasta system voc precisa ter os arquivos com
extenso XNU com as definies dos mdulos do ERP, e de um arquivo sigaadv.pss do CD
de instalao do ERP ou de um ambiente Windows. Este arquivo usado como base para a
criao do arquivo de senhas do ambiente, e parte do usurio Admin, sem senha (senha
em branco). Se voc j tem um ambiente Windows montado, voc pode copiar o arquivo
sigapss.spf deste ambiente para a pasta system do Linux.
Configurando o AppServer
Aps copiar todos os arquivos necessrios, vamos criar um arquivo de configurao para
este ambiente no Protheus 11. Usando um editor no Windows ou no Linux, crie um arquivo
chamado appserver.ini, com o seguinte contedo:
[general]
consolelog=1
[drivers]
active=tcp
[tcp]
type=tcpip
port=11010
[envp11]
sourcepath=/totvs/protheus11/envp11/apo
rootpath=/totvs/protheus11/envp11
startpath=/system/
rpodb=top
rpolanguage=por
rpoversion=110
localfiles=ctree
[dbaccess]
database=mysql
alias=envp11
server=localhost
port=7890
Este
arquivo
deve
ser
criado
e/ou
copiado
para
a
pasta
/totvs/protheus11/bin_131227a/appserver64. Caso voc j tenha um DBAccess com um
banco de dados vazio configurado em uma mquina Windows, voc pode apontar para ele.
Esta sugesto de configurao j prev o prximo post da sequncia, onde vamos instalar
um mysql e um DBAccess 64 bits no Linux, com unixodbc e tudo.
Nos testes atuais, eu subi um MSSQL Express na minha mquina Windows, usando um
DBACcess Windows, e usei as seguintes configuraes:
[dbaccess]
database=mssql
alias=envp11sql
server=192.168.1.63
port=7890
Para subir o Protheus Server em modo console no terminal Linux, entre na pasta
/totvs/bin_131227a/appserver64, e use o comando:
./appsrvlinux

Agora, com todos os arquivos corretamente copiados para as devidas pastas no ambiente
Linux, use um SmartClient da mesma Build, instalado na sua mquina Windows, edite o
arquivo smartclient.ini, para criar uma nova conexo TCP para o Protheus Server no Linux,
por exemplo:
[tcpubuntu14]
server=192.168.1.50
port=11010

Inicie seu SmartClient no Windows, utilizando os seguintes parmetros:

Ao confirmar o incio da aplicao, se tudo der certo, voc deve ver uma tela rapidinha com
uma mensagem convertendo arquivo de senhas e logo aps uma tela de escolha de tema,
parecida com a tela abaixo:

As primeiras etapas de instalao do ERP, como por exemplo a criao do arquivo de Helps,
bem lenta no Linux. Quando eu digo que lento, acredite em mim
Isto bem mais rpido, mesmo no Linux, quando usamos um c-Tree Server para controle
dos dicionrios. Tambm teremos um post exclusivo dedicado a esta etapa, onde inclusive
vamos instalar o c-Tree Server nesta VM, e fazer os ajustes necessrios no appserver.ini
para passar a us-lo.

Por padro, os dicionrios e arquivos locais de dados no Protheus Server usam o c-Tree.
Como nesta instalao no foi instalado e configurado um c-Tree Server, o Protheus assume
a utilizao do driver local do c-Tree, chamado de c-Tree Local, que j vem distribuda junto
com o binrio do Protheus Server (arquivo libctreestd.so).
Usando o Protheus com o c-Tree BoundServer
Quando temos uma instncia nica de Protheus Server, podemos tambm fazer uma
alterao simples e muito eficaz: Usar o c-tree Server DLL (ou c-Tree BoundServer) neste
ambiente extremamente simples, mas voc somente pode ter um nico servio de
Protheus Server configurado para acessar este ambiente: Voc edita o appserver.ini (sem
que o Protheus Server esteja em execuo), e na seo [general], acrescenta a chave:
ctreemode=boundserver
Ao subir novamente o Protheus Server, ele vai usar uma verso do c-Tree Server
embarcada, que j vem junto do pacote de distribuio do Protheus Server, para ser o
gerenciador dos arquivos, ao invs do c-Tree Local.
No meu ambiente de testes, a criao dos arquivos de help j tinha consumido mais de 20
minutos, e ainda no tinha concludo nem a metade Derrubei o Protheus Server, que
rodava em modo console, usando Control+C, e fiz a alterao acima.
Embora no momento de subir o Protheus Server, o c-Tree BoundServer tenha reclamado que
faltava um arquivo de Callback, o servio subiu no ar certinho. Utilizando o WINSCP,
apaguei da pasta system o arquivo sigahlp.hlp, que no tinha sido criado completo, e
entrei no ERP novamente usando o SmartClient no Windows.
Utilizando o c-Tree BoundServer, a atualizao do arquivo de Help e a tela de entrada
do ERP apareceram em menos de 30 segundos.
Aps digitar usurio e senha, e na segunda tela confirmar a data do dia, e entrar no mdulo
configurador, na empresa 99 Teste (criada automaticamente na entrada do sistema),
perguntado qual pas de instalao do ERP. Escolha Brasil e prossiga. O resto do
procedimento padro da instalao do produto: Aps criar um ou dois dicionrios, o ERP
pergunta qual a pasta de dados. Esta pergunta foi mantida por compatibilidade no
instalador. Por compatibilidade, escolha a pasta data.Em poucos minutos a carga inicial
finalizada, e o menu do mdulo configurador do ERP mostrado na tela.
Observaes sobre o c-Tree BoundServer
Pode ser usado para gerenciador dos dicionrios no lugar do c-Tree Server tradicional,
desde que apenas uma instncia do Protheus Server acesse os arquivos do
ambiente.
Possui licena subsidiada para at 64 conexes.
Por default, o c-Tree BoundServer distribudo junto dos executveis do Protheus Server
est configurado para no aceitar conexes TCP.
Existem mais detalhes a respeito, que sero abordados em posts dedicados a este assunto

Aps iniciar a VM do Ubuntu Linux montada no primeiro post , executamos os comandos


abaixo, para instalar o MYSQL e a UNIXODBC, respectivamente:
sudoaptgetinstallmysqlservermysqlclient
sudoaptgetinstalllibmyodbcunixodbcbinunixodbc
Com estes comandos, nesta verso do Sistema Operacional, o MySQL 5.5 ser instalado.
Durante a instalao, ser perguntada uma senha do usurio root do MySQL. Insira uma
senha e guarde-a, ela ser necessria nas etapas posteriores.
Criando a base no MySQL

Aps a instalao, 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:
mysqlurootp
Uma vez dentro do interpretador de comandos do MySql, execute os comandos abaixo para
criar a sua base de dados. Troque o contedo de usuariodebanco para um nome de
usurio que voc queira criar no banco de dados para ter acesso a essa base. Voc pode dar
o mesmo nome do usurio que voc criou para o sistema operacional. E, no lugar de senha,
coloque a senha que voc quer atribuir a este usurio, para ele acessar o Banco de Dados.
createdatabaseenvp11mysql;
grantallonenvp11mysql.*to'usuariodebanco'identifiedby'senha';

Configurando a UnixODBC
Para no 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:
sudosu
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 prximo de:


/usr/lib/x86_64linuxgnu/odbc/libodbcdrvcfg2S.so
/usr/lib/x86_64linuxgnu/odbc/libodbcnnS.so
/usr/lib/x86_64linuxgnu/odbc/libodbcdrvcfg1S.so
/usr/lib/x86_64linuxgnu/odbc/libodbctxtS.so
usr/lib/x86_64linuxgnu/odbc/liboraodbcS.so
/usr/lib/x86_64linuxgnu/odbc/libodbcmyS.so
/usr/lib/x86_64linuxgnu/odbc/libmyodbc.so
/usr/lib/x86_64linuxgnu/odbc/libodbcpsqlS.so
/usr/lib/x86_64linuxgnu/odbc/liboplodbcS.so
/usr/lib/x86_64linuxgnu/odbc/libodbcminiS.so
Os arquivos que nos interessam so os dois em destaque:
libmyodbc.so=MySQLDriverAPI
libodbcmyS.so=MySQLDriverSetup
Agora, vamos criar a configurao de instalao da UnixODBC. Usando o editor de arquivos
texto no Linux, crie o arquivo odbcinst.ini na pasta /etc/
sudovi/etc/odbcinst.ini
O contedo do arquivo deve ser o seguinte:
[odbc_mysql]
Description=ODBCforMySQL
Driver=/usr/lib/x86_64linuxgnu/odbc/libmyodbc.so
Setup=/usr/lib/x86_64linuxgnu/odbc/libodbcmyS.so
UsageCount=1
Agora, vamos ver a onde est a configurao de Sockets do MySQL, usando o comando
abaixo:
mysqladminurootpversion
O resultado deve ser parecido com este aqui:
mysqladminVer8.42Distrib5.5.49,fordebianlinuxgnuonx86_64
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights
reserved.
OracleisaregisteredtrademarkofOracleCorporationand/orits
affiliates.Othernamesmaybetrademarksoftheirrespective
owners.
Serverversion5.5.490ubuntu0.14.04.1
Protocolversion10
ConnectionLocalhostviaUNIXsocket
UNIXsocket/var/run/mysqld/mysqld.sock
Uptime:23min17sec

Threads:1Questions:583Slowqueries:0Opens:189
Flushtables:1Opentables:41Queriespersecondavg:0.417
O que nos interessa a informao em negrito: O caminho do Unix Socket em uso pelo
Banco de Dados. Agora, baseado no que j temos at agora, vamos criar a configurao de
ODBC efetivamente, apontando para os drivers.
vi/etc/odbc.ini
Podemos partir do seguinte contedo:
[envp11mysql]
Description=DSNparaBancoP11noMySQL
Driver=odbc_mysql
Server=localhost
Port=3306
Socket=/var/run/mysqld/mysqld.sock

Database=envp11mysql
Option=3
ReadOnly=No
Na prtica, os nomes das sees nos arquivos de configurao somos ns que definimos.
No arquivo odbcinst.ini, cada seo configura um driver de banco diferente. No arquivo
odbc.ini, cada seo corresponde a uma entrada de DSN da Odbc, que usa um determinado
driver.
Aps criar e editar os arquivos, vamos efetivar o registro das informaes na UnixODBC,
inicialmente instalando o Driver que configuramos, usando o comando abaixo.
odbcinstidf/etc/odbcinst.ini
Agora, vamos instalar a nossa configurao de DSN como System DSN, usando o
comando abaixo:
odbcinstislf/etc/odbc.ini
Agora, usando o comando abaixo, podemos consultar quais DSN de sistemas esto
instaladas:
odbcinstsq
E, finalmente, podemos testar a conexo com o MySQL via UnixODBC, usando o comando
abaixo, trocando MYSQLUSER pelo usurio que ns criamos para o banco envp11mysql , e
MYSQLUSERPASSWORD trocando pela senha utilizada.
isqlvmyodbc_mysql_dsnMYSQLUSERMYSQLUSERPASSWORD
O resultado esperado :
++
|Connected!|
||
|sqlstatement|
|help[tablename]|
|quit|
||
++
SQL>
Para sair do interpretador de comandos SQL, use a instruo quit. Com isso, j temos o
MySQL instalado, um banco criado, e a UnixODBC devidamente configurada.
Referncias
Kafee Talk How to setup and configure MySQL with unixODBC under Ubuntu 14.04.
Disponvel em <http://www.kaffeetalk.de/how-to-setup-and-configure-mysql-with-unixodbcunder-ubuntu-14-04/>. Acesso em 16 de Julho de 2016.
Concluso
Sim, foi mais simples e mais rpido do que imaginvamos. E, com mais um ou dois passos,
voc configura o MySQL no Linux para aceitar conexes 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 configurao bind-address, e trocar ela para 0.0.0.0 ;) Mas, o foco usarmos o
MySQL no Linux, com o DBAccess tambm no Linux. E esta etapa ser abordada no
prximo post dese assunto !!!
Basicamente, precisamos de um arquivo contendo a distribuio 64 bits Linux do DBAccess.
No exemplo de instalao, usei a verso disponvel no portal da Totvs ( 16-03-15DBACCESS_LINUX64_20141119.TAR.GZ )

Aps subir a VM, usamos um WINSCP para criar dentro na estrutura de diretrios proposta
para a aplicao (Post Parte 01), uma pasta para a build do DBAccess que vamos instalar.
A partir da pasta /totvs, criamos a pasta /dbaccess, e dentro dela a pasta 20141119
(referente a build em uso), e copiamos o arquivo mencionado para ela.
Usando um Putty, acessamos a VM pelo terminal e descompactamos o arquivo, usando os
comandos:
cd/totvs/dbaccess/20141119/
tarzxvf160315DBACCESS_LINUX64_20141119.TAR.GZ
Feito isso, vamos subir o DBAccess em modo console. A distribuio Linux 64 do
DBAccess possui 2 executveis : dbaccess64opt (Build Release) e dbaccess64dbg (Build
Debug). A pasta multi significa que a verso de DBAccess dentro dela foi feita para
conectar com mltiplos bancos de dados. Para subir esta verso em modo console, usamos
os seguintes comandos :
cdmulti
exportLD_LIBRARY_PATH=./
./dbaccess64opt

Configurar conexo do MySQL no DBAccess


Voc pode utilizar um DBAccess Monitor instalado no Windows, por exemplo, para conectar
no DBAccess Server da mquina Linux, e proceder com a configurao da conexo com o

MySQL.
Ao entrar na aba MySQL, e clicar em Novo, crie uma configurao com o mesmo nome de
DSN no Linux que criamos no post anterior no caso do exemplo, envp11mysql. Preencha
os campos usurio e senha com o usurio e senha que criamos no MySQL durante a
criao do banco de dados envp11mysql.
Testar a conexo
Usando o prprio DBAccess Monitor, na pasta Assistentes, usamos o recurso de Validao
de Conexo, informamos o banco MySQL, depois informamos o nome da conexo
(envp11mysql), e devemos receber a mensagem abaixo:

Para ver o que houve, vamos olhar o console do DBAccess no terminal do Linux. Deve haver
uma mensagem de erro parecida com a mensagem abaixo:
Begin

TopClient

Thread
(3256297216,192.168.1.63,MYSQL/envp11mysql,DBMonitor,julio.wittwer,NO
TEAUTOMAN)
BEGINLOG]
Connection[MYSQL/envp11mysql]couldnotloaddatabaseclientlibrary
[libmyodbc3_r.so]
[ENDLOG]
[BEGINLOG]
libmyodbc3_r.so: cannot open shared object file: No such file or
directory
[ENDLOG]
ExitTopClientThread(3256297216)[ERROR35]
O DBAccess est procurando uma lib client antiga do MySQL, para tentar conectar com ele,
e no vai encontr-la. Aps instalar o DBAccess e configurar a conexo, precisamos editar o
arquivo dbaccess.ini, e informar ao DBAccess que ele deve carregar a UnixODBC para
acessar o MySQL. Para isso, usamos a chave clientlibrary na seo [MYSQL].
Primeiro, finalize o DBACcess, usando Control+C no console. Agora, vamos localizar o driver
da UnixODBC. Normalmente ele est em alguma pasta da lib gnu Linux, em /usr/lib. Para
verificar onde exatamente ela est, usamos o comando abaixo:
find/usr/libname'libodbc.so*'
No meu ambiente, foram localizados os seguintes arquivos:
/usr/lib/x86_64linuxgnu/libodbc.so.1.0.0
/usr/lib/x86_64linuxgnu/libodbc.so.1
No dbaccess.ini, dentro da seo [mysql], colocamos a chave abaixo:
clientlibrary=/usr/lib/x86_64linuxgnu/libodbc.so.1

Aps salvar o arquivo e subir o DBAccess novamente, vamos testar a conexo usando o
assistente do DBAccess Monitor. E, se tudo estiver de acordo, devemos visualizar a
mensagem abaixo:

Subindo o DBAccess em modo daemon


Haja visto que o Banco de Dados MYSQL j est no ar, e o DBAccess est funcionando,
podemos subir ele em modo daemon, sem deixar ele preso ao terminal. Para isso, usando
o prprio terminal atual, finalizamos o DBAccess em modo console usando Control+C, e
subimos ele em modo daemon usando o seguinte comando:
nohup./dbaccess64optdaemon
Para verificar se o processo do DBAccess est realmente no ar, podemos rodar uma
instruo do Linux para listar os processos, filtrando o resultado por aqueles que contm a
string dbaccess, usando o comando abaixo:
psef|grepdbaccess
O retorno deste comando deve ser algo parecido com:
siga0984 1568 1 0 08:54 pts/0 00:00:00 ./dbaccess64opt
daemon
siga0984 1591 1410 008:58pts/0 00:00:00grepcolor=auto
dbaccess
O que nos interessa a primeira linha, pois informa o nmero do processo pelo qual o
sistema operacional subiu o DBAccess64 no nosso exemplo, 1568.
Para baixar o processo do DBAccess de forma controlada, usamos um terminal do Linux, e

usamos o comando kill, informando como parmetro o nmero do processo a ser finalizado.
Por exemplo:
kill1568
Para verificar se o processo est no ar, podemos usar novamente o comando ps. As
mesmas regras se aplicam ao processo do Protheus Server. Ele pode ser colocado em modo
daemon usando a mesma sintaxe, e verificado da mesma forma, usando o comando ps.
Concluso
Com o DBAccess instalado e funcionando na prpria mquina Linux, basta editar o arquivo
appserver.ini da instalao do Protheus Server feita no segundo post desta sequncia, para
apontar para o banco MYSQL em localhost, para o alias envp11mysql, e agora temos um
ambiente mnimo e operacional do Protheus 11 em uma mquina Linux 64.
Entre uma distribuio e outra de Linux, pode haver mudana nos comandos, a configurao
de alguns itens pode ser manual e dar um pouco mais de trabalho, algumas distribuies
vem com Firewall habilitado e requer mais passos de setup para abrir as excees, alguns
arquivos podem estar em outro lugar, ou ter um nome diferenciado, o gerenciador de pacotes
diferente, e assim por diante.

You might also like