[Cascavel-pm] DBI connect failed

Andre Carneiro andregarciacarneiro em gmail.com
Quinta Dezembro 6 09:00:52 PST 2012


Normalmente, quando essa mensagem ocorre comigo, é porque não tem client do
mysql não se conectou no servidor mysql. Os motivos podem ser muitos, e eu
tô com preguiça. Então em resumo faça o seguinte:

1 - Verifique se os módulos DBI e DBD::mysql estão corretamente instalados.
Não use 'force'! Esses módulos tem que instalar de boa;
2 - Verifique se os dados que você está passando para a conexão (host,
usuario e senha) estão corretos;
3 - Verifique se o servidor mysql no host que você está tentando se
conectar está com a instância do mysqld na lista de processos do seu S.O.
Se estiver, faça um teste de conexão utilizando o comando mysql -u<usuario>
-h<host> -p;
4 - Certifique-se que nenhum engraçadinho da infra adicionou regras de
firewall sem lhe avisar(isso é bem mais comum do que parece);
5 - Se tudo mais falhar, chame um pai-de-santo! Brincadeira! Instale o DBI
e o DBD::mysql do zero(sério!)



Cheers!




2012/12/6 breno <oainikusama em gmail.com>

> 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)
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
André Garcia Carneiro
Software Engineer
(11)982907780
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20121206/365a838c/attachment.html>


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