From sammuel.souza em gmail.com Mon Dec 3 17:49:33 2012 From: sammuel.souza em gmail.com (Sammuel Souza) Date: Mon, 3 Dec 2012 22:49:33 -0300 Subject: [Cascavel-pm] DBI connect failed Message-ID: Boa Noite, Tenho um script PERL sempre funcionou, porem hoje fui mudar o variavel.pl ################ local.cgi #!/usr/bin/perl use CGI; use DBI; use warnings; use diagnostics; ** linha 277 my $dbh=DBI->connect("DBI:mysql:$database_mysql:$host_mysql", $username_mysql, $password_mysql) or die $DBI::errstr;; my $sql_checar=$dbh->prepare("select * from sessao;"); $sql_checar->execute; # fim do local.cgi require 'variavel.pl'; ######### variavel.pl ## Banco de Dados ### our $host_mysql = "host"; our $username_mysql = "usario"; our $database_mysql = "database"; our $password_mysql = 'senh@'; ## Fim do banco de dados ### our $versao = "3.4"; 1; ### fim do variavel.pl ##### msg de error Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at ./local.cgi line 277. Sempre funcionou só porque mudei o variavel.pl não quer funcionar. Algum ja passou por isso? -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: From oainikusama em gmail.com Thu Dec 6 05:24:51 2012 From: oainikusama em gmail.com (breno) Date: Thu, 6 Dec 2012 11:24:51 -0200 Subject: [Cascavel-pm] DBI connect failed In-Reply-To: References: Message-ID: 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) From andregarciacarneiro em gmail.com Thu Dec 6 09:00:52 2012 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Thu, 6 Dec 2012 15:00:52 -0200 Subject: [Cascavel-pm] DBI connect failed In-Reply-To: References: Message-ID: 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 -h -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 > 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: From andregarciacarneiro em gmail.com Thu Dec 6 09:02:32 2012 From: andregarciacarneiro em gmail.com (Andre Carneiro) Date: Thu, 6 Dec 2012 15:02:32 -0200 Subject: [Cascavel-pm] DBI connect failed In-Reply-To: References: Message-ID: Corrigindo o primeiro parágrafo: Normalmente, quando essa mensagem ocorre comigo, é porque o client do mysql não está instalado, ou não consegue se conectar no servidor mysql por muitos vários motivos possíveis. Então em resumo faça o seguinte: 2012/12/6 Andre Carneiro > 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 > -h -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 > >> 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 > -- André Garcia Carneiro Software Engineer (11)982907780 -------------- Próxima Parte ---------- Um anexo em HTML foi limpo... URL: