数据库
首页 > 数据库> > Java从Appengine Managed VM连接到Cloud SQL 2nd Gen.

Java从Appengine Managed VM连接到Cloud SQL 2nd Gen.

作者:互联网

尝试使用托管VM为Java Appengine设置与Clond SQL 2nd Generation的连接.

我得到了什么:

> VM正在使用Appengine Compat模式(FROM gcr.io/google_appengine/java-compat)
>我在主机上看到一个MySQL管道(SSHed,我可以看到/ cloudsql / ** socket),但是默认的MySQL Java驱动程序不支持unix套接字
> Managed VM上似乎不支持Google Driver(java.lang.ClassNotFoundException:com.mysql.jdbc.GoogleDriver)
>我无法通过IP连接到MySQL

>没有驱动程序它没有为jdbc找到合适的驱动程序:google:mysql:// __ IP__:3306 / __ db__
>或jdbc超时:mysql:// __ IP__:3306 / __ db__(我已经将MVM外部IP添加到MySQL上的授权网络)
>但有趣的是,我可以从MVM机器连接到这个端口,至少打开了端口.无论如何,我不喜欢通过公开开放的IP连接的想法:PORT. MVM每次都有一个新的IP,因此我甚至无法添加防火墙规则来仅指定来自我的项目的访问权限

我应该如何配置ManagedVM应用程序以连接到Cloud SQL?

解决方法:

我无法使用Java启动托管VM应用程序,因此我现在无法自己尝试,但看起来您应该能够利用this library从Java连接到Unix套接字.有一个example,你只需要更改套接字的路径:

props.put("junixsocket.file", "/cloudsql/project-id:region:instance-id");

project-id是项目名称,region是您的Cloud SQL实例所在的区域(例如us-east1),instance-id是您的cloud-sql实例的名称.该字符串将位于“实例连接名称”下的第二代实例的属性中.

标签:google-cloud-sql,java,mysql,google-app-engine,google-managed-vm
来源: https://codeday.me/bug/20191006/1858541.html