目标:在云中运行的性能,可扩展性和高可用性的独立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>
问题
- 是谷歌应用程序引擎仅适用于基于Web应用程序?
- Google App Engine灵活环境适用于基于非Web控制台的Java应用程序吗?
- 或者我应该使用Google Compute Engine VM平台来运行这些非Web控制台应用程序,并且类似于在本地计算机上运行?
- 是否有可以添加到com.mysql.jdbc.GoogleDriver的Maven依赖项?
您的CloudSQL实例和App在同一个GCP项目中吗? – sharif9876
是否将application.properties文件粘贴到部署的文件之上?或者它只是一个有代表性的样本而已? –