我正在使用 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 时,错误仍然存在。