2012-06-27 87 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