使用Java连接到Google Cloud SQL

时间:2018-12-09 15:10:44

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

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

我在https://cloud.google.com/sql/docs/mysql/connect-external-app#java找到了说明,并将以下代码粘贴到了我的主要方法中(用适当的值代替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地址,我仍然无法连接到该实例。有人看到我尝试连接的方式有问题或知道如何进行此工作吗?

1 个答案:

答案 0 :(得分:0)

自述文件中有关于项目repo的一些更详细的说明。

一些潜在的跳闸点:

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

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

  3. 将库作为dependency添加到POM或gradlefile中。

  4. 确保防火墙在端口3307上允许Cloud SQL实例通过。