java - 如何为 Google Cloud SQL 配置 Java Hibernate?

标签 java mysql hibernate google-app-engine google-cloud-sql

我正在使用 Hibernate + Java + Jersey + MYSql,它在本地计算机上运行良好。但是我无法在 Google Cloud 上创建与 MySql 的连接。

我认为 MYSql 配置和实例创建在 Google Cloud 上很好,但我无法通过 hibernate 属性传递所有配置。请参阅此处的 Google 示例代码:

// The configuration object specifies behaviors for the connection pool.
HikariConfig config = new HikariConfig();

// Configure which instance and what database user to connect with.
config.setJdbcUrl(String.format("jdbc:mysql:///%s", DB_NAME));
config.setUsername(DB_USER); // e.g. "root", "postgres"
config.setPassword(DB_PASS); // e.g. "my-password"

// 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.mysql.SocketFactory");
config.addDataSourceProperty("cloudSqlInstance", CLOUD_SQL_CONNECTION_NAME);
config.addDataSourceProperty("useSSL", "false");

// ... Specify additional connection properties here.
// ...

// Initialize the connection pool using the configuration object.
DataSource pool = new HikariDataSource(config);

现在我不知道如何在Hibernate中传递cloudSqlInstancesocketFactory。我尝试传递这些参数,但它不起作用:

hibernate.connection.driver_class = com.mysql.jdbc.Driver
hibernate.connection.url = jdbc:mysql://google/pashumandi_db?cloudSqlInstance=pashuserver:asia-south1:mysql-instance&socketFactory=com.google.cloud.sql.mysql.SocketFactory
hibernate.connection.username = abc_user
hibernate.connection.password = 12345678
hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

您能否告诉我连接 Google Cloud 上的 MySql 的正确 hibernate 配置是什么?谢谢。

最佳答案

对于 Google Cloud,您可以选择您的数据库实例,然后在“连接”下您可以选择允许来自公共(public) IP 地址的连接,然后将您计算机的 IP 地址添加到授权建立连接的地址列表中。您只需在 URL 中使用数据库实例的公共(public) IP 地址即可。

关于java - 如何为 Google Cloud SQL 配置 Java Hibernate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59236468/

相关文章:

java - org.springframework.beans.factory.BeanCreationException & org.springframework.beans.BeanInstantiationException,未找到默认构造函数

java - 无法从队列创建热流

java - Spring security keycloak适配器承载配置

java - Postgresql-Hibertnate 重复键值违反唯一约束

java - 阿朱那012140 : Adding multiple last resources is disallowed

mysql "IN"条件与子查询

mysql - GWT - 显示的时间比数据库中存储的时间晚 1 小时

hibernate - GORM查询过滤器不是类的直接属性

mysql - 从字段类型为 INT 的表中选择

java - 如何通过 POJO 在 Hibernate 中防止 SQL 注入(inject)