Ubuntu22.04下PostgreSQL的postgres用户密码认证失败求助
解决Ubuntu 22.04上PostgreSQL postgres用户密码认证失败问题
从日志的DETAIL: User "postgres" has no password assigned可以明确问题核心:PostgreSQL的postgres用户未设置密码,这也是你切换peer/md5认证方式无效的原因,以下是具体解决步骤:
步骤1:通过系统postgres用户登录PostgreSQL
Ubuntu下PostgreSQL默认用peer认证匹配系统用户与数据库用户,你需要先切换到系统的postgres用户:
sudo su - postgres
执行完后直接输入psql即可无密码登录PostgreSQL控制台。
步骤2:为postgres用户设置密码
在psql控制台中执行以下命令设置密码(替换your_secure_password为你自己的安全密码):
ALTER USER postgres PASSWORD 'your_secure_password';
设置完成后输入\q退出psql控制台,再输入exit退出系统postgres用户。
步骤3:调整认证配置并重启服务(可选,若需用md5密码登录)
如果你希望用psql -U postgres直接从普通用户登录,需要确保pg_hba.conf中对应规则为md5:
- 编辑配置文件(对应你的PostgreSQL 14版本):
sudo nano /etc/postgresql/14/main/pg_hba.conf
- 找到以下行(日志显示是第90行):
local all postgres md5
确保该行是md5而非peer(如果之前改乱了,恢复成这个配置即可)。
3. 重启PostgreSQL服务使配置生效:
sudo systemctl restart postgresql@14-main
验证登录
现在执行psql -U postgres,输入你刚设置的密码即可成功登录。
内容的提问来源于stack exchange,提问作者akaleonard
相关产品推荐
相关产品推荐

