Neo-4j ETL 工具不会连接到本地 postgres 服务器。 org.postgresql.util.PSQLException:不支持身份验证类型 10

时间:2021-01-29 20:10:12

标签: postgresql jdbc neo4j postgresql-13

我使用的是 Neo4j 1.4.1 版和 PostgresSQL 13 和 PgAdmin 4.30。我最近安装了 PostgreSQL 13,在此之前我有 PostgreSQL 12 和 PgAdmin 4.24,当这个 ETL 导入工作起作用时。

但是现在,在删除 PostgreSQL 12 后,我尝试使用 neo4j ETL 工具将本地 postgres 数据库导入 Neo-4j。

我的输入连接详细信息:

<块引用>

主机=本地主机
端口= 5432
数据库= 我的数据库名称
连接 URL= jdbc:postgresql://localhost:5432/mydatabasename Username=myUsername password="mypassword"

但是当我单击“测试并保存连接”按钮时,它显示此错误:

<块引用>

2021 年 1 月 30 日上午 1:10:43 org.postgresql.Driver 连接严重: 连接错误:org.postgresql.util.PSQLException: 不支持身份验证类型 10。检查你是否有 配置 pg_hba.conf 文件以包含客户端的 IP 地址或 子网,并且它正在使用受支持的身份验证方案 司机。在 org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:614) 在 org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:222) 在 org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) 在 org.postgresql.jdbc.PgConnection.(PgConnection.java:194) 在 org.postgresql.Driver.makeConnection(Driver.java:431) 在 org.postgresql.Driver.connect(Driver.java:247) 在 java.sql.DriverManager.getConnection(DriverManager.java:664) 在 java.sql.DriverManager.getConnection(DriverManager.java:247) 在 org.neo4j.etl.rdbms.Support.testConnection(Support.java:32) 在 org.neo4j.etl.rdbms.Support.main(Support.java:74)

连接失败。 SQL 状态:08004,消息:身份验证类型 不支持 10。检查您是否已配置 pg_hba.conf 文件以包含客户端的 IP 地址或子网,并且它是 使用驱动程序支持的身份验证方案。

我在这篇文章 Unable to connect to Postgress DB due to the authentication type 10 is not supported 的帮助下。我尝试更改我的 pg_hba.conf 设置并将方法设置为 md5:

<块引用>

本地所有所有 md5

我也像这样配置了我的 postgresql.conf

<块引用>

listen_addresses = '*' port = 5432 max_connections = 100 password_encryption = md5

但是没有任何效果。我什至尝试重新安装 PostgreSQL 13 和 PgAdmin 4.30。

我下载了最新的 JDBC 版本并尝试使用 postgresql-42.2.18.jre7 进行连接,但同样的错误。当我使用Java程序连接到这个数据库时,连接成功。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JavaPostgresIntegration {
    public static void main(String[] args) {
        Connection c = null;
        try {
            Class.forName("org.postgresql.Driver");
            c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/mydatabase", "postgres", "mypassword");
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getClass().getName() + ": " + e.getMessage());
            System.exit(0);
        }
        System.out.println("Opened database successfully");
        try {
            c.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

输出:成功打开数据库

(我正在为这个程序使用下载的 postgresql-42.2.18.jre7。)

编辑:我安装了 PostgreSQL 12,它解决了问题。当我使用 Neo4j 连接到 PostgreSQL 13 时,错误仍然存​​在。

0 个答案:

没有答案