2012-06-27 54 views
0

我在我的机器上安装了Postgres,我试图用Perl连接到它。用Perl连接到Postgres

$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"; 

不过,我发现了以下错误:

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是我的Windows用户名。但是,我试图连接为postgres。我继续创建了一个名为souzamor Postgres里的用户,但我得到:

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 

我和Postgres的全新。有任何想法吗? 感谢

回答

6

我想你的意思

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

,而不是

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

编辑

this,它应该是:

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

太谢谢你了! – cybertextron

+0

不客气。如果它解决了你的问题,请不要忘记接受这个答案。 – ccheneson

0

要连接到MySQL您在评论

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

说,但不知为什么你使用DBI :: PG < <而不是使用模块DBI :: mysql的?

* PG - PostgreSQL的

纠正我,如果我的答案是错的

+0

更正! Plx再次检查 – cybertextron