java - 使用 jdbc 时尝试连接到远程 pg db 时出现奇怪的错误

标签 java postgresql jdbc

我正在编写一个简单的 java 程序,与我的远程 Postgres 数据库交互。 重要的部分是:

static final String url = "jdbc:postgresql://XX.XXX.XXX.XX:5432/DBNAME";
//...
public static void dbConnect() {
    try {
        dbConnection = DriverManager.getConnection(url, user, password);
        System.out.println("Connected to the PostgreSQL server successfully.");
    } catch (SQLException e) {
        System.out.println(e.getMessage());
    }
}

现在的问题是,我的数据库所在的远程服务器的 IP 地址为 XX.XXX.XXX.XX。当我运行上述程序时,我收到一条错误消息:

FATAL: no pg_hba.conf entry for host "YY.YYY.YY.YY", user "postgres", database "DBNAME", SSL off

我在错误中得到的 IP 地址指向我的路由器页面,与 192.168.1.1(YY.YYY.YY.YY) 相同。

我的/etc/postgresql/9.5/main/pg_hba.conf 看起来像这样(重要部分)

host     all             all             XX.XXX.XXX.XX/24   trust

我的/etc/postgresql/9.5/main/postgesql.conf 看起来像这样(重要部分)

listen_addresses = '*'
port = 5432

还有命令

 psql -h XX.XXX.XXX.XX  -U postgres

在 bash 控制台中,我成功连接到数据库。 有什么线索吗?

编辑: 使用完全相同的程序,我大约半天前成功连接并执行了查询。我没有更改服务器/程序上的任何设置,现在就像这样。

最佳答案

此问题类似于 https://dba.stackexchange.com/questions/83984/connect-to-postgresql-server-fatal-no-pg-hba-conf-entry-for-host

解决方案:

添加到postgresql.conf:

listen_addresses = '*'

添加到pg_hba.conf:

host  all  all 0.0.0.0/0 md5

关于java - 使用 jdbc 时尝试连接到远程 pg db 时出现奇怪的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47876886/

相关文章:

Java:谷歌应用引擎 "HTTP method POST is not supported by this URL"错误

未找到 Java Card framework.exp

postgresql - 在 postgresql jsonb 中存储外键是一个坏主意吗?

postgresql - 如何从 PostgreSQL 查询中获取列名和类型(不运行它)?

java - 监控 JDBC 连接池

java - Spring/Struts 2 配置 - 有傻瓜指南吗?

java - 我需要一种仅使用 java 中的 SWT 自动单击程序中按钮的方法

database - PostgreSQL : createdb prompt for password for user with no password

java - 无法从 Ubuntu 上的 Java 程序连接到本地主机上的 MySQL

java - 如何模拟用于测试的数据库(Java)?