Postgres输入正确密码提示认证失败,psql及Heroku推送均报错
PostgreSQL本地认证失败问题排查方案
- 先确认环境变量生效范围
报错里出现的登录用户atifs是你当前Windows系统的用户名,psql、pg_dump等工具默认会用系统用户名作为默认登录的数据库用户。你执行的set PGUSER=postgres仅在当前执行命令的CMD窗口临时生效,新开窗口或者切换窗口后配置会失效。
你可以在执行psql、heroku命令的同一个CMD窗口先执行以下配置:
配置完成后直接在同窗口执行set PGUSER=postgres set PGPASSWORD=你安装Postgres时设置的密码psql即可验证登录是否正常。 - 检查本地连接认证规则
PgAdmin可以正常登录说明密码本身是正确的,大概率是本地连接的认证配置异常,找到Postgres安装目录下的data/pg_hba.conf文件,确认本地连接的配置如下:
不要将本地连接的认证方式设置为# IPv4本地连接规则 host all all 127.0.0.1/32 scram-sha-256 # IPv6本地连接规则 host all all ::1/128 scram-sha-256peer或者ident,修改配置后重启PostgreSQL服务即可生效。 - Heroku推送问题修复
完成上面的环境变量配置后,在同窗口重新执行heroku推送命令即可。如果仍报错可以直接在命令里指定本地数据库的完整连接信息,避免读取默认配置出错:heroku pg:push postgresql://postgres:你的数据库密码@localhost:5432/postgres DATABASE_URL -a immense-anchorage-56196
内容的提问来源于stack exchange,提问作者Atif Shafi
相关产品推荐
相关产品推荐

