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

问题描述 投票:0回答:1

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

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/postgresql.conf看起来像这样(重要的部分)

listen_addresses = '*'
port = 5432

也是命令

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

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

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

java postgresql jdbc
1个回答
1
投票

这个问题类似于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
© www.soinside.com 2019 - 2024. All rights reserved.