Java应用程序无法访问Google云平台上的数据库
此时,请尝试在Google云平台上部署一个简单的Java应用程序,但目前只有起始页登录和注册页处于打开状态。当我尝试注册新用户时,我收到一个错误:Java应用程序无法访问Google云平台上的数据库,java,spring-mvc,google-app-engine,jpa,google-cloud-sql,Java,Spring Mvc,Google App Engine,Jpa,Google Cloud Sql,此时,请尝试在Google云平台上部署一个简单的Java应用程序,但目前只有起始页登录和注册页处于打开状态。当我尝试注册新用户时,我收到一个错误: org.springframework.orm.jpa.JpaSystemException: Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection at org.sp
org.springframework.orm.jpa.JpaSystemException: Could not open connection; nested exception is org.hibernate.exception.GenericJDBCException: Could not open connection
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException (HibernateJpaDialect.java:244)
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible (HibernateJpaDialect.java:155)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible (AbstractEntityManagerFactoryBean.java:417)
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible (ChainedPersistenceExceptionTranslator.java:59)
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary (DataAccessUtils.java:213)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke (PersistenceExceptionTranslationInterceptor.java:147)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodIntercceptor.invoke (CrudMethodMetadataPostProcessor.java:122)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke (ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke (JdkDynamicAopProxy.java:207)
at com.sun.proxy.$Proxy42.findByUsername (Unknown Source)
at project.security.service.UserServiceImpl.findByUsername (UserServiceImpl.java:38)
at project.security.validator.UserValidator.validate (UserValidator.java:32)
at project.security.controller.UserController.registration (UserController.java:38)
我知道访问数据库的问题是“云MySQL”我不明白我做错了什么。当我在本地服务器上运行应用程序时,一切都正常。我尝试了各种运行应用程序的选项,但错误总是一样的。
链接到代码。
指向不工作应用程序change-curr.appspot.com的链接。
我很乐意提供任何帮助。根据Google Cloud的文档,您的文件中有一个无效的连接字符串
您已定义:
jdbc:google:mysql://exchange-6/secur?user=root
从文档中,尝试使用
String jdbcUrl = String.format(
"jdbc:mysql://google/%s?cloudSqlInstance=%s&"
+ "socketFactory=com.google.cloud.sql.mysql.SocketFactory",
databaseName,
instanceConnectionName);
确保在谷歌云中,您已将您的ip地址添加到数据库权限中。或者添加0.0.0.0/0以允许任何IP地址连接到数据库。但是,不建议这样做。不幸的是,这个示例不再有效,因为“不起作用”是一个不适用于此处的术语。张贴它不起作用的原因。它有什么问题吗?我刚收到并启动了它。我得到的结果是:线程主线程com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:无法创建到数据库服务器的连接。位于sun.reflect.NativeConstructorAccessorImpl.newInstance0Native方法位于sun.reflect.NativeConstructorAccessorImpl.newInstanceNativeConstructorAccessorImpl.java:62Done。很遗憾,这并没有改善“我的情况”。请尝试使用客户端连接到数据库。如果这不起作用,要么你没有访问数据库的权限,要么你的防火墙正在阻止它。我们谈论的是什么类型的客户端?如果你在谷歌云中使用mac和MySQL,我建议你使用Sequel Pro,如果你是学生,我建议你使用Jetbrains的DataGrip,这是免费的。请在尝试提出更多问题之前阅读。请在尝试提出更多问题之前阅读。