java - YML 文件中的 HikariCP DataSourceProperties
问题描述
我正在使用 Micronaut 并尝试实现 Hikari 以连接到 PostgresSQL 数据库。我已经使用 yml 配置在本地连接上工作
datasources:
default:
jdbcUrl: "jdbc:postgresql://127.0.0.1:3306/playland"
username: "user"
password: "password"
而且效果很好。问题是,当我将它部署到 App Engine 时,我需要使用以下内容。如果可能的话,我更愿意(我认为)将它添加到 yml 配置中,但我似乎无法弄清楚。
// For Java users, the Cloud SQL JDBC Socket Factory can provide authenticated connections.
// See https://github.com/GoogleCloudPlatform/cloud-sql-jdbc-socket-factory for details.
config.addDataSourceProperty("socketFactory", "com.google.cloud.sql.postgres.SocketFactory");
config.addDataSourceProperty("cloudSqlInstance", CLOUD_SQL_CONNECTION_NAME);
我已经按照教程中的说明使用配置使其工作,但我遇到了将数据源属性合并到 yml 配置中的问题。我根据另一个 SO 答案尝试了这个:
datasources:
default:
jdbcUrl: "jdbc:postgresql:///playland"
username: "user"
password: "password"
hikari:
data-source-properties:
socketFactory: "com.google.cloud.sql.postgres.SocketFactory"
cloudSqlInstance: "project:region:instance"
但它没有用。有没有办法添加它或没有?
解决方案
尝试使用完整的 JDBC URL:
jdbc:postgresql:///<DATABASE_NAME>?cloudSqlInstance=<INSTANCE_CONNECTION_NAME>&socketFactory=com.google.cloud.sql.postgres.SocketFactory&user=<POSTGRESQL_USER_NAME>&password=<POSTGRESQL_USER_PASSWORD>
请让我知道这对你有没有用。
推荐阅读
- singlestore - MemSQL - 使用逗号分隔的字符串值填充表
- android - Android/IOS 手机上的 STM32 USB Host 插件通知
- cordova - Cordova 多个 InAppBrowser 来管理内部/外部链接
- kubernetes - 在 Kubernetes 中注册多个自定义指标 API
- c# - 拖放中自定义接受的操作
- neural-network - Caffe CNN Slice 层:2nd Slice 层产生未知的底部 blob
- java - 在 Android 的 FirestoreRecyclerAdapter 中显示 ServerValue.TIMESTAMP
- continuous-integration - 在哪里存储 CI 管道期间生成的 VSTS 扩展自定义数据
- c++ - 如何等待窗口在 Qt 中被隐藏?
- python - 为什么virtualenv在被拉取后依赖全局python而不是本地python?