我刚刚在Centos 7上安装了PostgreSQL 9.6并运行了以下命令:
[root@centos-server ~ ]sudo su - postgres
Last login: Sat Apr 20 07:26:35 UTC 2019 on pts/1
-bash-4.2$ psql
psql (9.6.12)
Type "help" for help.
postgres=# CREATE ROLE mydbuser WITH LOGIN PASSWORD 'secret' VALID UNTIL 'infinity';
CREATE ROLE
postgres=# CREATE DATABASE mydb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE mydb TO mydbuser;
GRANT
postgres=# \q
但是,当我尝试登录数据库时,出现错误:
[root@centos-server ~ ]# psql -h localhost -U mydbuser -d mydb -W
Password for user mydbuser:
psql: FATAL: Ident authentication failed for user "mydbuser"
请协助!
添加以下行作为pg_hba.conf的第一行。它允许使用加密密码访问所有用户的所有数据库:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 0.0.0.0/0 md5
并重启PostgreSQL服务:
sudo systemctl restart postgresql-9.6.service