[highgo@node1 data]$ psql -Uplpro -dpostgres
psql: 致命错误: 用户 "plpro" Password 认证失败
一:检查环境变量中是否指定了相关参数,比如:
#export PGUSER=highgo
#export PGDATABASE=highgo
#export PGHOST=localhost
#export PGPORT=5432
#export PGPASSWORD=highgo123
如果在环境变量中指定了相关的用户密码和数据库则注释或删除掉,source生效(需要su - 退出当前用户后重新进入,目的是为了刷新shell的环境 )
二:编辑pg_hba.conf文件
如果是本地主机连接则修改“local”的认证方式修改为trust或者md5,需要注意的是如果连接数据库的用户本身没有指定密码,则使用md5验证方式登陆的时候无论输入什么都会报错的,可以用默认用户登陆数据库ALTER USER user_name wWITH PASSWORD 'XXXXX ';的方式修改用户密码也可以直接指定为trust模式。
# "local" is for Unix domain socket connections only
local all all trust
如果是通过IPv4走的网络路线进行的链接,则要指定相关的IP范围和模式等:
# IPv4 local connections:
host all all 0.0.0.0/0 trust
在做流复制或使用pg_basebackup等工具的特殊情况下也会指定“允许用户使用本地主机进行复制连接”的权限:
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication highgo md5
#host replication highgo 127.0.0.1/32 md5
#host replication highgo ::1/128 md5
host replication all 192.168.1.0/24 trust
三:检查密码文件
有些时候可能会在客户端 $PGHOME目录下创建隐藏的密码文件.pgpass
检查格式和文件权限,添加要使用的用户及密码
格式
hostname:port:database:username:password
范例
192.168.1.100:5432:postgres:postgres:XXXXX
权限
Chmod 600 .pgpass