Windows10新装PostgreSQL配置环境变量后执行psql命令提示密码认证失败
报错根因
执行不带参数的psql命令时,Windows环境下会默认取当前Windows登录用户名作为PostgreSQL的登录身份,同时尝试连接与该用户名同名的数据库。
你当前Windows用户名为me,但PostgreSQL安装完成后,默认仅创建名为postgres的超级用户账号,不存在me这个数据库侧的用户,即便你输入的密码是安装流程里设置的正确值,身份校验本身无法通过,因此触发密码认证失败报错。安装过程中设置的密码,是专属postgres超级用户的登录密码,并非系统用户对应的数据库密码。
操作解决步骤
- 首次连接直接指定正确的超级用户身份,在命令行执行如下命令:
psql -U postgres
提示输入密码时,输入安装过程中为postgres用户设置的密码,即可正常登录。 - 如果需要后续直接用当前Windows用户名
me免参数登录数据库,可在postgres账号登录成功后,依次执行以下SQL完成配置:- 创建
me数据库用户并设置专属密码:CREATE USER me WITH PASSWORD '自定义me账号的登录密码'; - 创建与用户名同名的默认数据库(免参数执行
psql时需要连接该数据库才能正常完成初始化):CREATE DATABASE me OWNER me;
配置完成后,直接执行psql命令,输入刚才为me用户设置的密码,即可无需额外参数直接登录。
- 创建
补充排查项
- 输入密码时切换为英文半角输入法,命令行下输入密码不会有回显,很容易误触全角字符导致密码和实际配置不匹配。
- 打开Windows服务列表,找到命名格式为
postgresql-x64-<对应安装版本号>的服务,确认其状态为“正在运行”,未启动则手动启动后再尝试连接。
内容的提问来源于stack exchange,提问作者fffrost
相关产品推荐
相关产品推荐

