PostgreSQL安装时无密码设置选项及终端密码验证失败问题求助
PostgreSQL安装时无密码设置选项及终端密码验证失败问题求助
Hey,我之前也碰到过一模一样的情况,大概率是PostgreSQL默认的认证配置在搞鬼,给你几个靠谱的解决步骤:
第一步:找到并修改认证配置文件
pg_hba.conf
这个文件管着PostgreSQL的客户端认证规则,不同系统的位置略有不同:- Linux系统:通常在
/etc/postgresql/<你的PostgreSQL版本号>/main/pg_hba.conf - macOS(Homebrew安装):Intel芯片路径是
/usr/local/var/postgres/pg_hba.conf,M系列芯片是/opt/homebrew/var/postgres/pg_hba.conf - Windows系统:一般在
C:\Program Files\PostgreSQL\<版本号>\data\pg_hba.conf
打开文件后,找到针对
postgres用户的本地连接规则,大概是这样的:local all postgres peer把
peer改成md5(新版本PostgreSQL也可以用更安全的scram-sha-256),保存修改后的文件。- Linux系统:通常在
第二步:重启PostgreSQL服务
配置修改后必须重启服务才能生效:- Linux:执行
sudo systemctl restart postgresql - macOS:执行
brew services restart postgresql - Windows:打开「服务」面板,找到PostgreSQL相关服务,右键选择「重启」
- Linux:执行
第三步:重置postgres用户密码
现在可以设置一个明确的密码了:- Linux/macOS:在终端执行
sudo -u postgres psql,直接进入PostgreSQL命令行 - Windows:打开PostgreSQL自带的「SQL Shell (psql)」工具,输入用户名
postgres(默认端口5432直接回车即可)
进入psql后,执行以下命令设置新密码(把
你的新密码换成你想设的密码):ALTER USER postgres WITH PASSWORD '你的新密码';输入
\q退出命令行。- Linux/macOS:在终端执行
最后验证连接
现在尝试用新密码连接,比如在终端执行psql -U postgres -W,输入刚才设置的密码,应该就能正常登录了。
另外要注意,有时候你可能搞错了连接的用户名——PostgreSQL默认的超级用户是postgres,如果你用自己的系统用户名连接,可能会因为认证规则不同导致失败,记得确认连接时指定的用户是postgres哦。
备注:内容来源于stack exchange,提问作者Eze
相关产品推荐
相关产品推荐

