Windows环境下PostgreSQL登录报错fe_sendauth: no password supplied求助
解决psql登录时的
fe_sendauth: no password supplied错误 嘿,我之前在Windows上用命令提示符登录PostgreSQL时也碰到过一模一样的问题!这个错误本质是PostgreSQL的认证规则不允许你用密码方式登录——哪怕你输入了密码也没用。咱们一步步来搞定它:
第一步:找到pg_hba.conf配置文件
这个文件是PostgreSQL控制客户端认证的核心文件,默认路径一般是:C:\Program Files\PostgreSQL\<你的PostgreSQL版本号>\data\pg_hba.conf
比如你装的是15版本,那就是C:\Program Files\PostgreSQL\15\data\pg_hba.conf
第二步:修改认证规则
用文本编辑器(推荐Notepad++,避免系统记事本的编码问题)打开这个文件,找到下面类似的行:
# IPv4 local connections: host all all 127.0.0.1/32 ident
或者可能是trust,把这里的ident或trust改成md5或者scram-sha-256(scram-sha-256是PostgreSQL 10+更安全的认证方式)。修改后这行应该变成:
host all all 127.0.0.1/32 scram-sha-256
如果是本地连接的配置项(Windows下较少用到,但也可以检查):
# Local connections: local all all scram-sha-256
同样改成密码认证方式。
第三步:重启PostgreSQL服务
修改配置后必须重启服务才能生效:
- 按下Win + R,输入
services.msc回车打开服务管理器 - 找到名为
postgresql-x64-<版本号>的服务(比如postgresql-x64-15) - 右键点击它,选择“重启”
第四步:重新尝试登录
回到命令提示符,重新输入命令:psql -U postgres
输入密码时注意:cmd里不会显示任何字符(这是正常的安全机制),你只管输入密码然后回车就行,这次应该就能成功登录了!
补充小提示:如果你之前给postgres用户设置的密码是md5加密的,改成md5会更兼容;如果是新设置的密码,用scram-sha-256安全性更高。
内容的提问来源于stack exchange,提问作者Dev-Temmy
相关产品推荐
相关产品推荐

