2016 年 4 月更新
我们有一个新的 Java 库,用于从托管 VM 和其他环境连接到 Cloud SQL 实例:https ://github.com/GoogleCloudPlatform/cloud-sql-mysql-socket-factory
它仍然很新,所以通常的警告适用,但我们在测试中没有发现任何问题。
老答案:
我认为现在最好的选择是使用 junixsocket 库,如本文所述:https ://stackoverflow.com/a/34820600
如果您使用 maven-war-plugin 来打包您的应用程序,那么添加以下两个依赖项就足够了:
<dependency>
<groupId>com.kohlschutter.junixsocket</groupId>
<artifactId>junixsocket-mysql</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>com.kohlschutter.junixsocket</groupId>
<artifactId>junixsocket-native-common</artifactId>
<version>2.0.4</version>
</dependency>
对于 Play Framework,添加以下依赖项:
libraryDependencies += "com.kohlschutter.junixsocket" % "junixsocket-mysql" % "2.0.4"
libraryDependencies += "com.kohlschutter.junixsocket" % "junixsocket-native-common" % "2.0.4"
application.conf
按如下方式配置您的 Play :
db.default.url="jdbc:mysql:///mydb?socketFactory=org.newsclub.net.mysql.AFUNIXDatabaseSocketFactory&junixsocket.file=/cloudsql/PROJECT_ID:REGION:INSTANCE_NAME"
我们希望将来提供一些不需要使用 junixsocket 或类似库的东西。
我们将审查/修复https://cloud.google.com/appengine/docs/managed-vms/java/using-cloud-sql上的文档,因为它存在一些问题。感谢您提请我们注意。