【问题标题】:Connecting to Google Cloud SQL with Java使用 Java 连接到 Google Cloud SQL
【发布时间】:2019-05-10 15:29:31
【问题描述】:

我已经尝试了好几天,但一无所获。我正在尝试通过我正在构建的 JavaFX 程序连接到我的 MySQL 数据库,而不需要我将每个尝试连接的 IP 列入白名单。 GCP 支持团队已回复我一次,但完全误解了该问题(提供了仅在我将自己的 IP 列入白名单以测试程序的其他方面后才出现的日志示例)。

我在 https://cloud.google.com/sql/docs/mysql/connect-external-app#java 找到了说明,并将以下代码粘贴到我的 main 方法中(将适当的值替换为 databaseName、instanceConnectionName、用户名和密码):

String jdbcUrl = String.format(
"jdbc:mysql://google/%s?cloudSqlInstance=%s"
+ "&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false",
databaseName,
instanceConnectionName);

Connection connection = DriverManager.getConnection(jdbcUrl, username, 
password);

然后,我启用了 Cloud API,据我所知,我按照指示安装并验证了 Cloud SDK。然而,尽管如此,我仍然无法连接到没有列入白名单的 IP 地址的实例,即使文档说这是解决方法。是否有人发现我尝试连接的方式存在问题或知道如何进行此操作?

【问题讨论】:

  • 您是否按照document 中的步骤进行操作?此链接有更详细的说明。还要确保将 Cloud SQL 套接字工厂添加为项目中的依赖项。如需更完整的示例,请查看this。如果您在点击这些链接后仍有问题,可以分享您遇到的错误吗?

标签: java sql google-cloud-platform google-cloud-sql


【解决方案1】:

项目的repo README 中有一些更详细的说明。

一些潜在的绊脚石:

  1. 使用Application Default Credentials 向工厂提供凭据。

  2. 确保您的项目启用了Cloud SQL API(如果您使用的是服务帐户,请确保将Cloud SQL Client 角色添加到其中)。

  3. 在您的 POM 或 gradlefile 中将库添加为 dependency

  4. 确保您的防火墙允许通过端口 3307 访问您的 Cloud SQL 实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2021-04-15
    • 2021-12-22
    • 2020-01-23
    • 1970-01-01
    • 2015-03-12
    • 2014-01-28
    相关资源
    最近更新 更多