2017-08-03 85 views
0

目标:在云中运行的性能,可扩展性和高可用性的独立Java &数据库应用独立的Java应用程序连接到谷歌云SQL数据库

应用程序详细信息

  • 基于Spring Boot的Java应用程序被git克隆到Google App Engine标准环境的 文件夹中。
  • 创建
  • 谷歌Cloud SQL的第二代例如

注:云壳牌是在同谷歌云项目为云SQL

谷歌云壳牌

[email protected]${PROJECT_ID}:~$ cd git 

[email protected]${PROJECT_ID}:~$ cd myapplication 

使用Maven运行应用程序会抛出异常无法连接到云SQL数据库

[email protected]${PROJECT_ID}:~$ mvn exec:java 

使用不同的JDBC连接字符串和JDBC驱动程序没有帮助。

application.properties

# Use MySQL database 
#etl.datasource.url=jdbc:mysql://${IP:Instance_name}/${database}?autoReconnect=true&useSSL=false 
#etl.datasource.url=jdbc:google:mysql://${INSTANCE_CONNECTION_NAME}/${database} 
etl.datasource.url=jdbc:mysql://google/${database}?cloudSqlInstance=${INSTANCE_CONNECTION_NAME}&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false 
#etl.datasource.driver-class-name=com.mysql.jdbc.Driver 
etl.datasource.driver-class-name=com.mysql.jdbc.GoogleDriver 
etl.datasource.username=${user} 
etl.datasource.password=${password} 

2017年8月3日10:40:59.477 ERROR 381 --- [MyApplication.main()] oatomcat.jdbc.pool.ConnectionPool:无法创建池的初始 连接。 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: 无法创建与数据库服务器的连接。尝试重新连接3 次。放弃。

2017年8月3日12:16:23.525 ERROR 1048 --- [MyApplication.main()] o.a.tomcat.jdbc.pool.ConnectionPool:无法创建池的初始 连接。值java.sql.SQLException:无法加载类:从类加载器 com.mysql.jdbc.GoogleDriver:[email protected];类加载器:[email protected]

即使添加一个src /webapp/WEB-INF/appengine-web.xml没有帮助。

的AppEngine-web.xml中

<?xml version="1.0" encoding="utf-8"?> 
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> 
    <threadsafe>true</threadsafe> 
    <use-google-connector-j>true</use-google-connector-j> 
</appengine-web-app> 

问题

  1. 是谷歌应用程序引擎仅适用于基于Web应用程序?
  2. Google App Engine灵活环境适用于基于非Web控制台的Java应用程序吗?
  3. 或者我应该使用Google Compute Engine VM平台来运行这些非Web控制台应用程序,并且类似于在本地计算机上运行?
  4. 是否有可以添加到com.mysql.jdbc.GoogleDriver的Maven依赖项?
+0

您的CloudSQL实例和App在同一个GCP项目中吗? – sharif9876

+0

是否将application.properties文件粘贴到部署的文件之上?或者它只是一个有代表性的样本而已? –

回答

0

你想要做的事应该是完全可能在App Engine上。 的确有一个Maven的依赖,你可以拉了谷歌驱动程序:

<dependency> 
     <groupId>com.google.cloud.sql</groupId> 
     <artifactId>mysql-socket-factory</artifactId> 
    </dependency> 

而且,由于你使用Spring的引导,我建议你给Spring Cloud GCP一试。那里有一个简单的Cloud SQL sample,可以让你快速入门。

相关问题