Programando uma Intranet com Apache, MySQL e Perl (parte 2)

Acessando o MySQL com o Perl. Muita coisa pode ser feita na web sem um banco de dados. Porém, em algum momento, você pode se deparar com a necessidade de armazenar certos dados dos seus clientes e usuários em um local seguro e altamente disponível. Este local será, com certeza, um banco de dados.

[ Hits: 21.156 ]

Por: Thiago Glauco Sanchez em 02/06/2010


Conectando-se com o banco de dados



Vamos criar um banco qualquer. No caso eu criei o banco vivaoLinux no console do MySQL.

CREATE DATABASE `vivaoLinux`;

$dbh será nossa variável de manuseio do banco, ou seja, o database handle. Para criar um database handle a sintaxe é a seguinte:

my $dbh = DBI->connect("DBI:<nome_do_driver>:<nome_do_banco>:<servidor>", "<usuário>", "<senha>").

O módulo DBI também fornece a variável DBI::errstr que armazena possíveis mensagens de erros. Muito útil para debugar erros.

Então, vamos criar um programa para acessar o banco 'vivaoLinux' com o Perl. Para acessar um banco temos que criar o database handle. Para isso crie um arquivo, no meu caso artigo.pl e digite o código abaixo.

use strict;
use warnings;

use DBI;

my $dbh = DBI->connect("DBI:mysql:vivaolinux:localhost", 'root','root')
   or die ("Não foi possível fazer conexão: " . $DBI::errstr);

$dbh->disconnect();

A primeira observação clara é: você nunca irá usar o usuário root num programa que acessa um banco em produção. Pois é uma falha séria de segurança. O usuário declarado na string de conexão do programa deve ter as configurações se acesso no sistema do banco de dados restritas às operações necessárias. Então, o root não é necessário.

Isso é importante, pois caso o banco esteja inacessível a string de erro pode mostrar ao usuário do programa as informações da conta de acesso ao banco. Veja abaixo o erro que aparece se eu executar o programa acima com o serviço do MySQL parado:

perl artigo.pl
DBI connect('vivaolinux:localhost','root',...) failed: Can't connect to MySQL server on 'localhost' (10061) at artigo.pl line 8
Não foi possível fazer conexão: Can't connect to MySQL server on 'localhost' (10 061) at artigo.pl line 8.

Página anterior     Próxima página

Páginas do artigo
   1. Apresentando... DBI e DBD::MySQL
   2. Conectando-se com o banco de dados
   3. Criando tabelas no MySQL com o Perl
   4. Populando a tabela
Outros artigos deste autor

Programando uma Intranet com Apache, MySQL e Perl (parte 1)

Leitura recomendada

Perl e MySQL

Catalyst Framework Perl - Parte III

Phperl, minha gambiarra para usar Perl como se fosse PHP

Manipulação de sockets em Perl usando o IO::Socket::INET

Catalyst Framework Perl - (parte 2)

  
Comentários
[1] Comentário enviado por hellsdragon em 02/06/2010 - 12:14h

Olá

Amigo qual distro você usou para montar essa Intranet?

Até mais

H'D

[2] Comentário enviado por instrutorTIC em 02/06/2010 - 12:37h

Cara, os ítens de artigo eu utilizo o Ubunto ou o Debian, mas tomo cuidado para manter a interoperabilidade entre sistemas o mais próxima de 100%. O que é bem simples graças a capacidade multiplataforma do Perl, do mySQL e do Apache. A intranet dos artigos são fictícias, baseadas em casos reais de clientes.
Mas Intranets implantada eu já fiz em Solaris, Redhat e - pasme :-O - em Windows.

mais sobre a TICursos: http://ticursos.net


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts