我正在编写一个与我的远程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/postgesql.conf看起来像这样(重要的部分)
listen_addresses = '*'
port = 5432
还有命令
psql -h XX.XXX.XXX.XX -U postgres
bash控制台中的将我成功连接到数据库。 有线索吗?
编辑: 使用完全相同的程序,我已经成功连接并执行了大约半天前的查询。我没有更改服务器/程序上的任何设置,现在就像这样。
答案 0 :(得分:1)
<强>解决方案:强>
添加到postgresql.conf:
listen_addresses = '*'
添加到pg_hba.conf:
host all all 0.0.0.0/0 md5