2017-11-18 57 views
0

最近一直让我疯狂,希望任何人都可以帮助我。从谷歌应用程序引擎(春季启动应用程序)无法连接到谷歌云的SQL(第二代)

我一直试图从谷歌应用程序引擎(春季启动应用程序)连接到谷歌云(第二代),但没有运气。我按照此页上的说明https://cloud.google.com/appengine/docs/flexible/java/using-cloud-sql获取连接字符串。从我的本地计算机连接到谷歌云sql是很好的。

此外,我的应用程序引擎和谷歌sql实例来自同一个项目。我也验证了我可以连接到谷歌SQL从谷歌应用程序引擎的云壳

我想知道哪个是正确的连接字符串使用。我想这两个连接模板,但没有得到任何运气

  • “的jdbc:谷歌的:mysql:// $ {INSTANCE_CONNECTION_NAME}/$ {}数据库用户= $ {}用户密码& = $ {}密码? “

  • ” 的jdbc:mysql的://谷歌/ $ {}数据库= useSSL假& cloudSqlInstance = $ {} INSTANCE_CONNECTION_NAME &的SocketFactory = com.google.cloud.sql.mysql.SocketFactory &用户= $ {用户} & password = $ {password}“

这是从谷歌云日志迹:

017-11-17 00:20:51 default[20171117t071753]  at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131] 

2017年11月17日0时20分五十一秒默认[20171117t071753]所致:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信链路失败 2017-11-17 00:20:51默认[20171117t071753] 2017-11-17 00:20:51默认[20171117t071753]成功发送到服务器的最后一个数据包是0毫秒前。驱动程序尚未收到来自服务器的任何数据包。 2017-11-17 00:20:51默认[20171117t071753] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)〜[na:1.8.0_131] 2017-11-17 00:20:51默认[20171117t071753] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)〜[na:1.8.0_131] 2017-11-17 00:20:51 default [20171117t071753] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java :45)〜[na:1.8.0_131] 2017-11-17 00:20:51默认[20171117t071753] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)〜[na:1.8.0_131 ] 2017-11-17 00:20:51默认[20171117t071753] at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)〜[mysql-connector-java-5.1.43.jar!/:5.1 .43] 2017-11-17 00:20:51默认[20171117t071753] at com.mysql.jdbc.SQLError.createC ommunicationsException(SQLError.java:989)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51默认[20171117t071753] at com.mysql.jdbc。 MysqlIO。(MysqlIO.java:341)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51默认[20171117t071753] at com.mysql.jdbc .ConnectionImpl.coreConnect(ConnectionImpl.java:2196)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51默认[20171117t071753] at com.mysql .jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2229)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51 default [20171117t071753] at com .mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51 default [20171117t071753]在com.mysql.jdbc.ConnectionImpl。(ConnectionImpl.java:779)〜[mysql-connector-java-5.1.43。 jar!/:5.1.43] 2017-11-17 00:20:51默认[20171117t071753] at com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:47)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51 default [20171117t071753] at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)〜[na:1.8.0_131] 2017-11-17 00:20:51 default [20171117t071753] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)〜[na:1.8.0_131] 2017-11-17 00:20:51默认[20171117t071753] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)〜[na:1.8.0_131] 2017-11-17 00:20:51 default [20171117t071753] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)〜[na:1.8.0_131] 2017-11-17 00:20:51默认[20171117t071753] at com.mysql.jdbc。 Util.handleNewInstance(Util.java:425)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-1 7 00:20:51 default [20171117t071753] at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017- 11-17 00:20:51 default [20171117t071753] at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51默认[20171117t071753] at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310)〜[tomcat-jdbc-8.5.16.jar!/:na ] 2017-11-17 00:20:51默认[20171117t071753] at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)〜[tomcat-jdbc-8.5.16.jar!/ :na] 2017-11-17 00:20:51默认[20171117t071753] at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:735)〜[tomcat-jdbc-8.5.16.jar !/:na] 2017-11-17 00:20:51预设[20 171117t071753] at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:667)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默认[20171117t071753] at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:482)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20 :51默认[20171117t071753] at org.apache.tomcat.jdbc.pool.ConnectionPool。(ConnectionPool.java:154)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00: 20:51 default [20171117t071753] at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默认[20171117t071753] at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11 -17 00:20:51默认[20171117t071753]位于org.apache.tomcat.jdbc.pool.DataSourc eProxy.getConnection(DataSourceProxy.java:131)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默认[20171117t071753]位于org.springframework.jdbc.datasource。 DataSourceUtils.doGetConnection(DataSourceUtils.java:111)〜[spring-jdbc-4.3.10.RELEASE.jar!/:4.3.10.RELEASE] 2017-11-17 00:20:51默认[20171117t071753] at org。 springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)〜[spring-jdbc-4.3.10.RELEASE.jar!/:4.3.10.RELEASE] 2017-11-17 00:20:51 default [20171117t071753] ... 29个常见框架遗漏 2017-11-17 00:20:51默认[20171117t071753]由java.net.UnknownHostException造成:google.net.InetAddress.getAllByName0(InetAddress.java:1280) 〜[na:1.8.0_131] at java.net.InetAddress.getAllByName(InetAddress.java:1192)〜[na:1.8.0_131] at java.net.InetAddress.getAllByName(InetAddress.java:1126)〜[na: 1.8.0_131]在com.mysq l.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:188)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] at com.mysql.jdbc.MysqlIO。(MysqlIO.java:300) 〜[mysql-connector-java-5.1.43.jar!/:5.1.43]

回答

0

在我的应用程序属性中,我使用jdbc:mysql:// [host]:[port]/[dbname]?autoReconnect = true &对于url属性,useSSL = false并且工作正常。

但在我看来,你的错误是由于你必须在你的cloud-sql实例的授权部分授权你的app-engine的IP地址。

Configuring IP Access on Cloud SQL instance

+0

谢谢帕夫勒花时间回答这个问题。你提到的是,如果我们从外部环境连接到cloud-sql。 此外,我只是想出了我做错了什么,我们必须将包装设置为war而不是jar,并添加appengine-web.xml以将use-google-connector-j设置为true,这将指示Google引擎使用谷歌连接器而不是mysql连接器 – TruongNguyen

+0

很酷。我很高兴你解决了这个问题。 –

+0

这是不正确的建议。从App Engine进行连接时,不应使用IP连接,而应使用App Engine特定的连接,如下所述:https://cloud.google.com/sql/docs/mysql/connect-app-engine。 – Vadim