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.
Parte 2: 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:
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.
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.
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();
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.
Amigo qual distro você usou para montar essa Intranet?
Até mais
H'D