Por que não pode se conectar a postgres de Perl?

votos
3

Eu acredito que eu tenha configurado Pg corretamente, mas o meu script não parece ser a conexão com o banco de dados. Estou testando com:

$ Database = networkem;
$ User = postgres;
$ Password = ;
$ Host = localhost;

$ Dbh = DBI-> connect ( DBI: Pg: dbname = $ dbname; host = $ host, $ user, $ password);

Meu pg_hba lê:

hospedar toda a confiança postgres 127.0.0.1 255.255.255.255

Eu posso usar psqlmuito bem através de linha de comando e começaram postmaster com a opção -i. o que estou perdendo?

Eu também tentei com outro usuário que funciona bem via psql:

$ User = Jimbo; $ Password = p2ssw0rd;

com a leitura pg_hba:

hospedar toda a confiança jimbo 127.0.0.1 255.255.255.255
Publicado 20/12/2008 em 23:04
fonte usuário
Em outras línguas...                            


4 respostas

votos
11

Em vez de jogar 20 perguntas para depurar sua configuração, DBI->errstrvai dizer por que a conexão falhou.

my $dbh = DBI->connect(...) or die DBI->errstr;

Mas se eu tivesse que adivinhar ... desde Postgres autentica baseado em host e usuário de login, eu suspeito que a confusão se situa entre o nome do usuário que você está dando para a conexão Postgres e o usuário Unix que você está logado como.

Respondeu 21/12/2008 em 00:29
fonte usuário

votos
1

Além de excelente resposta do Schwern, você também pode verificar o log PostgreSQL que, dependendo das opções selecionadas no postgresql.conf pode dizer muito sobre o que estava errado.

Respondeu 21/12/2008 em 22:01
fonte usuário

votos
0

É recomendado que você use a opção de configuração 'listen_addresses' em sua postgresql.conf em vez de '-i' na linha de comando. Por exemplo:

listen_addresses = '*'

Tente executar o seguinte comando como o mesmo usuário que você está executando o seu script perl com:

psql -U postgres -h localhost networkem

O 'localhost -h' força uma conexão de rede em vez de uma conexão socket Unix. Se esse comando funciona, seu script perl também deve funcionar.

Respondeu 10/01/2009 em 07:09
fonte usuário

votos
1

Eu tive o mesmo problema. A dica acima para tentar "-h localhost" confirmou que eu tinha um problema de conexão através da rede.

Ao adicionar o seguinte para pg_hba.conf corrigiu o problema.

host all postgres 127.0.0.1/32 trust
Respondeu 18/06/2009 em 02:53
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more