2012-06-27 13 views
0

J'ai installé Postgres dans ma machine, et j'essaye de me connecter en utilisant Perl.connexion à Postgres avec Perl

$database = "heatmap"; 
$user = "postgres"; 
$password = "<password>"; 

#connect to Postgres database 
my $db = DBI->connect(
     "DBI:Pg:database=$db;", 
     $user, 
     $password 
) or die "Can't Connect to database: $DBI::errstr\n"; 

Cependant, je reçois l'erreur suivante:

DBI connect('database=;','postgres',...) failed: FATAL: password authentication failed for user "souzamor" at C:/Users/souzamor/workspace/Parser/Parser.pl line 13. 
Can't Connect to database: FATAL: password authentication failed for user "souzamor" 

souzamor est mon nom d'utilisateur de Windows. Cependant, j'essaie de me connecter en tant que postgres. Je suis allé de l'avant et créé un utilisateur appelé souzamor dans Postgres, mais je suis:

DBI connect('database=;','souzamor',...) failed: FATAL: database "user='souzamor'" does not exist at C:/Users/souzamor/workspace/Parser/Parser.pl line 13. 
Can't Connect to database: FATAL: database "user='souzamor'" does not exist 

Je suis tout à fait nouveau avec Postgres. Des idées? Merci

Répondre

6

Je pense que vous voulez dire

my $db = DBI->connect(
     "DBI:Pg:database=$database", 

au lieu de

my $db = DBI->connect(
     "DBI:Pg:database=$db;", 

Modifier

Selon this, il devrait être:

my $dbh = DBI->connect("dbi:Pg:dbname=$database", $user, $password); 
+0

Merci beaucoup! – cybertextron

+0

Vous êtes les bienvenus. S'il vous plaît n'oubliez pas d'accepter cette réponse si elle a résolu votre problème. – ccheneson

0

vous voulez vous connecter à vous mysql dit dans le commentaire

#connect to MySQL database 
my $db = DBI->connect(
     "DBI:Pg:database=$db;", 
     $user, 
     $password 

mais en quelque sorte pourquoi vous utilisez DBI :: Pg < < à la place en utilisant le module DBI :: mysql?

* Pg - PostgreSQL

me corriger si ma réponse est fausse

+0

Corrigé! Plx vérifier à nouveau – cybertextron