关于psql连接数据库Password认证失败

时间:2022-05-21 18:30:27
[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