我已经尝试了好几天,却一无所获。我正在尝试通过正在构建的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地址,我仍然无法连接到该实例。有人看到我尝试连接的方式有问题或知道如何进行此工作吗?
答案 0 :(得分:0)
自述文件中有关于项目repo的一些更详细的说明。
一些潜在的跳闸点:
使用Application Default Credentials向工厂提供凭据。
确保已为项目启用Cloud SQL API
(如果您使用的是服务帐户,请确保已添加Cloud SQL Client
角色)。
将库作为dependency添加到POM或gradlefile中。
确保防火墙在端口3307上允许Cloud SQL实例通过。