1

如果我有一个Compute Engine实例池(位于具有静态IP的负载均衡器后面),并且我想从这些实例上的Java应用程序连接到同一项目中的Cloud Sql数据库,那么关于它的方式是什么?如何将Google Compute Engine实例池连接到同一项目中的Cloud SQL DB?

1)负载均衡器中的这些实例没有静态外部IP,因此我无法授权通过IP地址访问Cloud SQL。

2)“com.mysql.jdbc.GoogleDriver”在Compute Engine上不可用,因为它在App Engine上。

3)如果我试图用股票MySQL JDBC驱动程序,它不理解的连接字符串,如:

"jdbc:google:mysql://__instance_name__/__db_name__>?user=__user__&password=__password__"; 

and fails saying "No suitable driver found for jdbc:google:mysql://__instance_name__/__db_name__>?user=__user__&password=__password__" 

我不能相信我不能轻易地从连接Compute Engine的实例同一Google Cloud项目的云端SQL数据库。

是我使用https://cloud.google.com/sql/docs/compute-engine-access上描述的“使用云SQL代理连接”方法的唯一选择吗?这似乎是大量的工作要自动完成的实例会来到游泳池并随时离开!

难道有人可以抛出一些光吗?

谢谢。

+0

我认为您可能需要使用Cloud SQL Proxy选项,并使用启动脚本来执行安装。 https://cloud.google.com/compute/docs/startupscript – Dagang

+0

是的,事实上,仅需2分钟,我就成功地通过Cloud SQL Proxy选项开始连接。不得不睡在之间,当昨晚变得清晰的时候,“云SQL代理”是唯一的选择。 – Roshan

回答

1

最后能够通过Google Cloud Sql代理从动态IP GCE实例连接到Google Cloud SQL数据库。由于存在变体(same-project-app-to-db,different-project-app-to-db),并且我还想为任何可能需要它的人保留一些App-engine-to-Cloud-SQL连接信息,写了一些关于它的文字,并把它放在https://roshandawrani.wordpress.com/2016/09/22/connecting-from-gce-gae-java-to-google-cloud-sql/。希望可以将链接留在详细信息中,而不是再次复制这里的所有内容。干杯。

+0

已更新blogpost以包含使用Google Cloud Sql Proxy for Java应用程序的替代方案,这些应用程序必须从GCE连接到Cloud SQL数据库:使用“cloud-sql-mysql-socket-factory”库。 – Roshan

相关问题