sexta-feira, 29 de outubro de 2010

Como Conectar o MySQL com o Br Office no Linux


Para podermos combinar o poder do MySQL com a praticidade do Br Office, abrindo uma infinidade de possibilidades no Linux, é necessário conectar o MySQL com o aplicativo de banco de dados do Br Office, o Br Office Base.
Existem diversas formas de conseguir fazer isso, e, irei ilustrar uma forma que funciona efetivamente.

Como ligar o BR Office Base no MySQL - As Formas Existentes

  • É possível conectar o Br Office Base com o MySQL com o JConnector, conector Java
  • Com uma extensão nativa do Br Office, MySQL Connector for OpenOffice.org mas, que funciona apenas com a versão 3.1, não tendo sido atualizado até o momento
  • O Conector ODBC, que foi o que melhor se saiu dos três.
Na verdade, não tive sucesso com o JConnector e a extensão MySQL Connector está desatualizada, e não funcionou com a versão corrente do Br Office(3.2)
Então, vamos ver como fazer a conexão BR Office/MySQL com o conector ODBC.


Conector ODBC

ODBC (acrônimo para Open Data Base Connectivity) é um padrão para acesso a sistemas gerenciadores de bancos de dados. Este padrão define um conjunto de interfaces que permitem o uso de linguagens de programação como Visual Basic, Delphi, Visual C++, entre outras capazes de utilizar estas interfaces, para ter acesso a uma vasta gama de bases de dados distintas sem a necessidade de codificar métodos de acesso especializados.
O ODBC possui uma implementação específica da linguagem SQL com a qual a aplicação pode se comunicar com a base de dados de forma transparente, permitindo, por exemplo, que um mesmo programa possa utilizar simultaneamente o MySQL, o Access e o SQL Server sem a necessidade de mudanças na sua camada de dados. O uso destas interfaces está condicionado à existência de drivers ODBC específicos para as bases de dados que se deseja acessar.


Instalação do Conector ODBC no Linux

Será necessário instalar dois pacotes para poder trabalhar com o conector ODBC no Linux, o pacote unixODBC(versão rpm e versão deb) e o mysql-connector-odbc . Claro que, se estes pacotes já estiverem nos repositórios da sua distribuição favorita, o mais indicado a fazer é um apt-get install pacote ou yum/urpmi -i pacote. Caso não esteja(como aconteceu comigo) a solução é baixar dos links que forneci acima.
  1. Depois de instalados os pacotes, para testar se estão funcionando ok, digite $ odbcinst -j, o que deverá listar as opções correntes de configuração do conector ODBC. Algo como :
    unixODBC 2.2.14
    DRIVERS............: /etc/odbcinst.ini
    SYSTEM DATA SOURCES: /etc/odbc.ini
    USER DATA SOURCES..: /home/user/.odbc.ini
  2. Agora vem a parte importante: Configurar os dois arquivos que vão informar ao Br Office como se comunicar com o MySQL. Os arquivos são odbcinst.ini e odbc.ini e ficam localizados em /etc
    odbcinst.ini - Este arquivo vai apontar onde estão os drivers que farão a conexão com o Br Office. Essa é a instalação que funciona na minha distribuição e instalação. Os nomes das bibliotecas e suas localizações podem ser diferentes, mas, nada que um whereis e um locate não resolvam.
    [MySQL]
    Description = ODBC for MySQL
    Driver = /usr/lib/libmyodbc5.so
    Setup = /usr/lib/libodbcmyS.so.1
    FileUsage = 1
  3. odbc.ini
    [MySQL-Teste] - Poderia ser qualquer nome, este aqui foi usado apenas para ilustrar

    Description = MySQL BD_Teste

    Driver = MySQL

    Server = localhost - Aqui vai o endereço IP do servidor MySQL, neste exemplo está rodando na própria máquina.

    Socket = /var/lib/mysql/mysql.sock - O endereço do socket MySQL tem que ser declarado, ele é que vai fazer a conexão entre o Br Office e o MySQL

    User = username - nome do usuário cadastrado no MySQL, que será usado para o Br Office se logar no MySQL

    Password = senha - senha do usuário cadastrado no MySQL, para o Br Office se logar no MySQL

    Port = 3306 - Essa é a porta padrão do MySQL

    Database = teste - NOTE BEM: Aqui vai o nome do BANCO DE DADOS que está no MySQL e com o qual queremos TRABALHAR. Esse banco de dados foi criado anteriormente, com qualquer outra ferramenta MySQL

    Option = 3

    ReadOnly = No - Para permitir que o Br Office possa inserir dados no banco de dados
  4.  Estes foram os passos no sistema operacional Linux. Agora, os passos no Br Office
  5.  Arquivo de Banco de Dados>> Novo
  6. Clique no botão Conectar-se a um banco de dados MySQL e escolha no menu suspenso. Clique em Next.
  7. Na janela seguinte, você deve aceitar a escolha do padrão de conectar usando ODBC, e clique em Avançar.
  8. Clique em Procurar e selecione criado conexão ([MySQL teste] deve estar na lista em nosso caso) e no próximo.
  9. em seguida, digite avançar, não registrar o arquivo. Salve o arquivo. E, a partir daí, poderá começar a trabalhar com seu banco de dados MySQL dentro do Br Office. 
Considerações Finais
Os passos aqui apresentados funcionam perfeitamente localmente. Para se trabalhar em rede(um servidor MySQL remoto) existem algumas alterações, as quais veremos futuramente. O arquivo odbc.ini pode ficar localizado na /home do usuário padrão, caso se deseje alterar frequentemente a configuração dos bancos de dados sendo acessados. Nesse caso, o arquivo odbc.ini que fica em /etc deve ficar vazio, para que não haja conflito.
Devem ser observados os nomes de duas bibliotecas: libmyodbc e libodbcmyS que mudam, de uma distro para outra no Linux, mas, que fazem a mesma coisa, sendo necessário apenas adaptar o nome para que funcione na sua distro preferida.

sexta-feira, 22 de outubro de 2010

Como Resetar a Password de Root no MySQL

Para quem já teve o desprazer de perder sua senha de root no MySQL, ou que ainda vai perdê-la, aqui vai uma dica salvadora da pátria.

Pare ou mate o serviço do MySQL
# killall mysqld ou #service mysqld stop

Inicie o MySQL em safe mode (modo seguro):

# mysqld_safe --skip-grant-tables &

"Entre" usando o cliente do mysql:

# mysql

Acesse o banco do MySQL

> use mysql;

Definindo a nova senha do root do MySQL:

> update user set password = password('digite sua nova senha aqui') where user='root' and host='localhost';

Recarregar os privilégios, digitando:

> flush privileges;

Saia do MySQL:

> quit

Reinice o MySQL em modo normal:

# service mysqld stop

E enfim, vamos iniciar o MySQL com a nova senha de root:

# service mysqld start

E pronto, seu root com senha nova e acesso ao banco de dados novamente.