【问题标题】:Cannot connect to local postgresql DB using DBeaver无法使用 DBeaver 连接到本地 postgresql 数据库
【发布时间】:2020-05-30 09:28:15
【问题描述】:

我正在尝试连接到 localhost:5432 中的 postgresql 数据库,但我不断收到错误消息: 致命:用户“”的身份验证失败。

我在运行 Centos7 的虚拟机上安装了 Postgres11。通过命令行创建了一个数据库,名称为business_db。

我已经检查过,postgresql 正在 localhost:5432 中运行。

我的 pg_hba.conf 文件是这样的:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     peer
host    all             all             127.0.0.1/32           ident
host    all             all             ::1/128                 ident
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            ident
host    replication     all             ::1/128                 ident

pg_ident.conf 文件不包含任何配置:

# Put your actual configuration here
# ----------------------------------

# MAPNAME       SYSTEM-USERNAME         PG-USERNAME

数据库存在如命令所示:

我以“dev”用户身份登录系统,但是,无论我在使用 DBeaver 测试连接时尝试什么,我总是得到错误:

我还尝试将用户设置为 postgres 并使用我的系统密码,但得到了同样的错误。我错过了什么?

【问题讨论】:

  • 对于 DBeaver 来说仍然如此。我尝试升级驱动程序版本,但找不到明确的指导方针。

标签: postgresql jdbc dbeaver


【解决方案1】:

当你使用 JDBC 时,你必须使用密码认证。 identpeer 都不会为此工作。

您需要添加,例如:

host    all             all             127.0.0.1/32           md5

在 pb_hba.conf 的顶部

(如果你正在使用 scram-sha-256 替换 md5

【讨论】:

  • pg_hba.conf中的这条记录的初步一些与数据库本身相关的配置步骤(密码加密方法)应该按照文章stackoverflow.com/a/64336274/1017684中的描述进行
【解决方案2】:

如果您不想输入密码,请将ident 更改为trust,如果您想输入密码,请将其更改为md5

然后重新加载 PostgreSQL 服务器。

【讨论】:

    【解决方案3】:

    删除密码中的所有空格,这对我有用

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 2020-11-05
    • 2022-01-26
    • 2018-06-15
    • 2018-12-24
    相关资源
    最近更新 更多