Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序无法访问Google云平台上的数据库_Java_Spring Mvc_Google App Engine_Jpa_Google Cloud Sql - Fatal编程技术网

Java应用程序无法访问Google云平台上的数据库

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

此时,请尝试在Google云平台上部署一个简单的Java应用程序,但目前只有起始页登录和注册页处于打开状态。当我尝试注册新用户时,我收到一个错误:

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,这是免费的。请在尝试提出更多问题之前阅读。请在尝试提出更多问题之前阅读。