终端执行psql命令提示密码验证失败如何快速登录?
PostgreSQL 直接执行
psql命令登录失败的解决方案 报错原因
默认执行psql时,会自动使用当前Windows系统的用户名(本例为Ante)作为PostgreSQL的登录用户名,要么该用户在PostgreSQL中不存在,要么输入的密码不匹配,就会抛出身份验证失败报错。
即时可用解决方案
方案1:重置对应账户密码(保留密码验证逻辑)
- 先使用PostgreSQL默认超级用户登录,终端执行命令:
psql -U postgres
输入安装PostgreSQL时设置的postgres用户密码即可完成登录。
2. 进入psql交互终端后,按需执行以下操作:
- 若
Ante用户尚未创建,执行:
CREATE ROLE Ante WITH LOGIN SUPERUSER PASSWORD '自定义你的登录密码';
- 若
Ante用户已存在,直接重置密码即可:
ALTER USER Ante WITH PASSWORD '自定义你的登录密码';
- 执行
\q退出psql,再次直接输入psql,输入刚才设置的密码即可登录成功。
方案2:配置本地免密登录(无需每次输入密码)
- 找到PostgreSQL的配置文件路径:如果方案1中
psql -U postgres可登录,执行SHOW hba_file;即可获取pg_hba.conf的绝对路径;默认路径为C:\Program Files\PostgreSQL\你的版本号\data\pg_hba.conf。 - 打开
pg_hba.conf,找到以下两行配置:
host all all ::1/128 scram-sha-256 host all all 127.0.0.1/32 scram-sha-256
将末尾的scram-sha-256修改为trust后保存文件。
3. 重启PostgreSQL服务:按下Win+R输入services.msc打开服务列表,找到名称以postgresql开头的对应服务,右键选择「重启」即可。
4. 后续直接在终端输入psql,无需输入密码即可直接登录。
常见排查点
如果执行psql -U postgres也提示密码错误,先按方案2的步骤将pg_hba.conf的本地连接验证规则改为trust,重启服务后无需密码即可登录postgres账户,完成密码修改或用户创建操作后,可按需改回原来的验证规则。
内容的提问来源于stack exchange,提问作者Ceki
相关产品推荐
相关产品推荐

