我刚刚在EC2 AMI实例上安装了PostgreSQL 9.2服务器。但是我无法从命令提示符连接到它。
此外,我在/var/lib
中看到两个目录:pgsql9
和pgsql92
。 pgsql92中的数据目录为空,因此看起来像pgsql9正在被使用。
[root@ip-172-31-56-103 etc]# psql
Password:
psql: FATAL: password authentication failed for user "root"
[root@ip-172-31-56-103 etc]# sudo su - postgres
-bash-4.2$ psql
Password:
psql: FATAL: password authentication failed for user "postgres"
-bash-4.2$ psql -U postgres
Password for user postgres:
psql: FATAL: password authentication failed for user "postgres"
-bash-4.2$
的pg_hba.conf
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
postgresql.conf中
listen_addresses = '*'
答案 0 :(得分:1)
确定您正在使用的PG安装:ps -ef | grep pgsql
。您将确定使用哪个二进制文件,数据目录和conf文件来为您提供一些安慰。
您是否更改了默认的pg_hba.conf
?如果是这样,你重装了吗?像sudo service postgresql reload
这样的东西应该这样做,具体取决于你的操作系统。
您可能还希望更改IPv6本地连接以使用md5
。
尝试在-h localhost
命令中添加-h 127.0.0.1
或psql
:例如: psql -h localhost -U postgres
。
检查您的postgres
密码双重 / 三次确定。
否则,请查看操作系统安装的特定文档。有时apt
或yum
repos会为您执行一些额外的安全配置。
最后,最糟糕的情况是,将所有pg_hba.conf
auth方法更改为trust
,然后重新启动数据库,登录,更改postgres
密码,注销,将auth方法更改为{{ 1}},重新加载并尝试再次登录。