簡體   English   中英

無法從Google App Engine(春​​季啟動應用)連接到Google Cloud SQL(第二代)

[英]Can not connect to google cloud sql(second generation) from google app engine(spring boot app)

最近,這讓我發瘋了,希望有人可以幫助我。

我一直在嘗試從Google App Engine(春​​季啟動應用程序)連接到Google Cloud sql(第二代),但是沒有成功。 我按照此頁面上的說明https://cloud.google.com/appengine/docs/flexible/java/using-cloud-sql獲取連接字符串。 從我的本地計算機連接到Google Cloud sql很好。

另外,我的應用程序引擎和Google sql實例來自同一項目。 我還驗證了我可以從goole應用程序引擎的雲外殼連接到Google sql

我想知道哪個是正確的連接字符串。 我嘗試了這兩個連接模板,但是沒有運氣

  • “ jdbc:google:mysql:// $ {INSTANCE_CONNECTION_NAME} / $ {database}?user = $ {user}&password = $ {password}”

  • “ jdbc:mysql:// google / $ {database}?useSSL = false&cloudSqlInstance = $ {INSTANCE_CONNECTION_NAME}&socketFactory = com.google.cloud.sql.mysql.SocketFactory&user = $ {user}&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 00:20:51默認[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]在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本地方法)〜[na:1.8.0_131] 2017-11-17 00:20:51默認[20171117t071753]在sun .reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)〜[na:1.8.0_131] 2017-11-17 00:20:51默認位置[20171117t071753]位於sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 〜[na:1.8.0_131] 2017-11-17 00:20:51默認[20171117t071753]在java.lang.reflect.Constructor.newInstance(Constructor.java:423)〜[na:1.8.0_131] 2017-11 com.mysql.jdbc.Util.handleNewInstance(Util.java:425)處的默認值[20171117t071753] -17 00:20:51〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017- 11-17 00:20:51默認[20171117t071753]在com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017年-11-17 00:20:51默認[20171117t071753]在com.mysql.jdbc.MysqlIO。(MysqlIO.java:341)〜[mysql-connecto r-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51默認[20171117t071753]在com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2196)〜[mysql -connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51 com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2229)的默認[20171117t071753]〜[ mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51 com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)的默認[20171117t071753]〜 [mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51默認[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]在com.mysql.jdbc.JDBC4Connection。(JDBC4Connection.java:47)〜 [mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11-17 00:20:51默認[20171117t071753]在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法)〜[na:1.8 .0_131] 2017-11-17 00:20:51默認[20171117t071753]在sun.ref lect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)〜[na:1.8.0_131] 2017-11-17 00:20:51默認[20171117t071753]位於sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)〜 [na:1.8.0_131] 2017-11-17 00:20:51默認[20171117t071753]在java.lang.reflect.Constructor.newInstance(Constructor.java:423)〜[na:1.8.0_131] 2017-11- 17 00:20:51默認[20171117t071753]在com.mysql.jdbc.Util.handleNewInstance(Util.java:425)〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017-11 com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)上的默認[20171117t071753] -17 00:20:51〜[mysql-connector-java-5.1.43.jar!/:5.1.43] 2017- 11-17 00:20:51默認[20171117t071753]在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]在org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java: 310)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默認[20171117t071753]在org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java :203)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默認[20171117t071753]在org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool。 java:735)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默認[20171117t071753]在org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool .java:667)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默認[20171117t071753]在org.apache.tomcat.jdbc.pool.ConnectionPool.init( ConnectionPool.java:482)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默認[20171117t071753]在org.apache.tomcat.jdbc.pool.ConnectionPool。( ConnectionPool.java:154)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20:51默認[20171117t071753]在org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool (DataSourceProxy.java:118)〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00:20 :org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:107)上的默認設置:51 [20171117t071753]〜[tomcat-jdbc-8.5.16.jar!/:na] 2017-11-17 00: 20:51默認值[20171117t071753]在org.apache.tomcat.jdbc.pool.DataSourceProxy.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]在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默認[20171117t071753] ...省略了29個常見框架2017-11-17 00:20:51 default [20171117t071753]原因:java.net.UnknownHostException:google at java.net.InetAddress.getAllByName0(InetAddress.java:1280)〜[na:1.8.0_131] at java.net.InetAddress.getAllByName(InetAddress.java:1192)〜[na: 1.8.0_131],位於java.net.InetAddress.getAllByName(InetAddress.java:1126)〜[na:1.8.0_131],位於com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:188)〜[mysql-connector- com.mysql.jdbc.MysqlIO。(MysqlIO.java:300)上的java-5.1.43.jar!/:5.1.43]〜[mysql-connector-java-5.1.43.jar!/:5.1.43]

在我的應用程序屬性中,我對URL屬性使用jdbc:mysql:// [host]:[port] / [dbname]?autoReconnect = true&useSSL = false,它可以正常工作。

但是在我看來,您的錯誤是由於您必須在cloud-sql實例的授權部分中授權應用程序引擎的IP地址而導致的。

在Cloud SQL實例上配置IP訪問

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM