You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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-main
    
    这时候再执行sudo -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 = 5433port = 5432,最后重启17的服务就行。

备注:内容来源于stack exchange,提问作者Codistan

火山引擎 最新活动