我已经试了好几天了,但一无所获。我正试图通过我正在构建的JavaFX程序连接到我的MySQL数据库,而不需要我将尝试连接的每个IP都列入白名单。GCP支持团队回复了我一次,但完全误解了这个问题(举了一些日志的例子,这些日志是在我将自己的IP列入白名单以测试我的程序的其他方面之后才出现的(。
我在https://cloud.google.com/sql/docs/mysql/connect-external-app#java,并将以下代码粘贴到我的主方法中(用适当的值替换databaseName、instanceConnectionName、username和password(:
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);
然后,我启用了云API,据我所知,按照指示安装并验证了云SDK。然而,尽管如此,如果没有白名单IP地址,我仍然无法连接到实例,尽管文档中说这是解决问题的方法。有人看到我试图连接的方式有问题吗?或者知道如何实现这一点吗?
README中有一些关于项目回购的更详细的说明。
一些潜在的跳闸点:
-
使用应用程序默认凭据向工厂提供凭据。
-
确保为项目启用了
Cloud SQL API
(如果您使用的是服务帐户,请确保为其添加了Cloud SQL Client
角色(。 -
将库作为依赖项添加到POM或gradlefile中。
-
确保您的防火墙允许从端口3307到您的云SQL实例。