使用Perl连接到Postgres

cyb*_*ron 0 postgresql perl

我在我的机器上安装了Postgres,我正在尝试使用它连接到它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";
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误:

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"
Run Code Online (Sandbox Code Playgroud)

souzamor是我的Windows用户名.但是,我正在尝试连接postgres.我继续创建了一个名为souzamorPostgres 的用户,但我得到了:

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
Run Code Online (Sandbox Code Playgroud)

我对Postgres全新.有任何想法吗?谢谢

cch*_*son 6

我想你的意思是

my $db = DBI->connect(
        "DBI:Pg:database=$database",
Run Code Online (Sandbox Code Playgroud)

代替

my $db = DBI->connect(
        "DBI:Pg:database=$db;",
Run Code Online (Sandbox Code Playgroud)

编辑

根据这个,它应该是:

my $dbh = DBI->connect("dbi:Pg:dbname=$database", $user, $password);
Run Code Online (Sandbox Code Playgroud)