spring - PGD​​atasource 不会连接到远程服务器

标签 spring postgresql ssl datasource

我正在尝试为 postgresql 实现一个监听器。当获得数据库连接时,如果我连接到我的本地主机,它将正常工作,但一旦我将主机更改为远程服务器,它将失败。

@Bean
public DataSource datasource(){
    PGDataSource pgDataSource = new PGDataSource();
    pgDataSource.setHost( hostname );
    pgDataSource.setDatabase( database );
    pgDataSource.setPassword( password );
    pgDataSource.setPort( Integer.parseInt(port) );
    pgDataSource.setUser( user );
    return pgDataSource;
}

应用程序.yml

pg:
 connection:
  host: 127.0.0.1
  pwd: test
  usr: test
  dbs: test
  port: 5432

当我使用这些属性运行监听器时,它工作正常,但一旦我更改主机,它就会失败。我认为它可能是 ssl,但没有将 ssl 设置为 true 的方法。

最佳答案

我必须解决这个错误。我只需要在其中一个属性中启用 ssl。我在 PGDataSource 中寻找 ssl 的 setter,但由于我没有找到任何方法,所以我在数据库名称中启用了它。

我做了以下事情:

pg:
 connection:
  host: remote-host
  pwd: test
  usr: test
  dbs: test?ssl.mode=require
  port: 5432

关于spring - PGD​​atasource 不会连接到远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41516271/

相关文章:

sql - 将 json 数组的每个项目的值与 postgres 9.6 相乘

java - SSLException : hostname in certificate didn't match: <50. 19.233.255> != <*.heroku.com>

java - 使用 Maven 生成生产就绪输出

java - Spring Boot 1.3 使用模拟嵌套 Bean 进行测试

java - 上传文件大小超过限制时如何取消表单提交?

python-3.x - 如何修复 Python 中的 urlopen 错误?使用 youtube-dl

java - MTLS 和 http 客户端连接池使用情况

java - 仅当从某个类调用该方法时才拦截该方法?

postgresql - postgres "ntile(2) over (order by column)"无效订单

linux - 无法在 WSL Ubuntu 终端打开时停止自动 PostgreSQL 启动