[Cascavel-pm] DBI connect failed

breno oainikusama em gmail.com
Quinta Dezembro 6 05:24:51 PST 2012


Oi Sammuel,

Olha, considerando que o arquivo em questão contém justamente as
credenciais do seu banco, dizer que "só porque mudei o variavel.pl não
quer funcionar" não nos diz muito sobre o problema. De fato, erros do
tipo "Can't connect through local socket", até onde eu sei, estão
associadas à conexão com o banco em si, o que me leva a perguntar,
nessa ordem:

1) Pelo seu código, vc abre o arquivo de variáveis durante o runtime e
depois da chamada ao connect() da linha 277. Se isso procede, então
essas variáveis provavelmente não estão definidas antes, ou estão
definidas com valores diferentes do que você ou seu banco esperam.
Experimente colocar, na linha imediatamente anterior ao connect(),
isso aqui:

   warn "[conectando] - banco: '$database_mysql', host: '$host_mysql',
usuario: '$username_mysql', senha: '$password_mysql'...\n";

e confirme que os valores para conexão estão definidos corretamente.
Em outras palavras, o que quer que seja retornado nesse warn() deve
servir para você conectar no banco pela linha de comando, ou seja,
fazendo:

  mysql $database_mysql -u$username_mysql -p$password_mysql -h $host_mysql

(note ainda que estou falando dos valores retornados pelo warn(), não
dos valores que vc botou no 'variavel.pl')

2) O host onde está o mysqld é local ou remoto? Se for local, sua
variável $host_mysql está definida como 'localhost'?

3) o mysql está rodando na máquina? Experimente executar:

   mysqladmin --socket=/var/lib/mysql/mysql.sock -u root -p status

4) O arquivo de socket está com as permissões necessárias?

Espero que isso ajude!

[]s

-b

(obs: dito isso, acho importante frisar que essa forma de organização
de arquivos e dependências não é recomendada há mais de uma década,
quando fazer 'require' em arquivos .pl foi substituido por módulos com
namespace bem definido. Mais ainda, para armazenar configurações,
experimente usar algo como Config::Tiny ou Config::Any, ou ao menos a
receita 8.16 do Perl Cookbook: "Reading Configuration Files")

(obs2: desculpe a demora para responder. Acabo olhando muito mais a
lista da brasil-pm, e a cascavel ficou escondida sem querer nas pastas
do email, só fui ver que tinha backlog agora)


Mais detalhes sobre a lista de discussão Cascavel-pm