0

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

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

我的输入连接详细信息:

Host= localhost
Port= 5432
Database= mydatabasename
Connection 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:

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

由于不支持身份验证类型 10,我接受了这篇文章 Unable to connect to Postgress DB 的帮助。我尝试更改我的pg_hba.conf设置并将方法设置为 md5:

本地所有所有 md5

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

listen_addresses = '*' 端口 = 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 时,错误仍然存​​在。

4

0 回答 0