Ubuntu 24.04环境下PostgreSQL 17本地连接失败及密码问题求助
Ubuntu 24.04环境下PostgreSQL 17本地连接失败及密码问题求助
嘿,我来帮你搞定这个PostgreSQL 17在Ubuntu 24.04上的连接和密码问题!我看了你的描述,这俩问题其实都是新版本和Ubuntu默认配置的小坑,咱们一步步来解决:
一、先搞定postgres用户的密码重置
现在你不知道正确密码,咱们绕开认证直接登录改密码:
- 先停掉PostgreSQL 17的服务:
sudo systemctl stop postgresql@17-main - 切换到postgres用户,用单用户模式启动(这会跳过密码认证):
sudo -u postgres postgres --single -D /var/lib/postgresql/17/main - 弹出会话后,输入下面的SQL命令重置密码(把
your-new-strong-password换成你自己想设的密码):
输完按ALTER USER postgres WITH PASSWORD 'your-new-strong-password';Ctrl+D退出这个单用户会话 - 最后重启服务:
sudo systemctl start postgresql@17-main
二、验证本地终端连接
现在用新密码试试连接,记得指定5433端口:
psql -h localhost -p 5433 -U postgres
如果你还是想用sudo -u postgres psql免密登录,那得调整下认证配置:
- 打开
pg_hba.conf文件:sudo nano /etc/postgresql/17/main/pg_hba.conf - 找到针对postgres用户的本地连接行,把原来的
scram-sha-256改成peer:local all postgres peer - 重新加载配置生效:
这时候再执行sudo systemctl reload postgresql@17-mainsudo -u postgres psql就不用输密码了。
三、解决DBeaver的连接问题
DBeaver连不上主要是密码和端口的问题,按下面的步骤调整:
- 新建连接时,数据库类型选PostgreSQL
- 主机填
localhost,端口一定要填5433(别用默认的5432) - 用户名填
postgres,密码填你刚才重置的新密码 - 点测试连接,应该就能成功了
关于端口变成5433的说明
PostgreSQL 17默认还是用5432端口的,你这里变成5433大概率是因为系统里之前装过旧版本的PostgreSQL(比如16),它占用了5432端口,所以17自动用了5433。如果想改回5432,先停掉旧版本的PostgreSQL服务,然后修改postgresql.conf里的port = 5433为port = 5432,最后重启17的服务就行。
备注:内容来源于stack exchange,提问作者Codistan




