首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenShift应用程序无法连接到MySQL : JDBCConnectionException:无法打开连接

问OpenShift应用程序无法连接到MySQL : JDBCConnectionException:无法打开连接
EN

Stack Overflow用户
提问于 2013-06-20 02:42:36
回答 5查看 6.2K关注 0票数 1

我为我的SpringMVC + Maven + Hibernate + MySQL应用程序生成了一个SpringMVC文件,该应用程序在本地主机和本地MySQL数据库上运行得非常好。配置数据库的方式是通过一个WebAppConfig.java文件,该文件查看application.properties文件并检索适当的信息。

然后我创建了一个OpenShift帐户并部署了这个.war文件。我添加了MySQL和PHPMyAdmin墨盒,以便维护数据库。当我试图通过应用程序检索信息或推送到数据库时,我会收到此错误。

HTTP状态500 -请求处理失败;嵌套异常为org.springframework.transaction.CannotCreateTransactionException:无法为事务打开Hibernate会话;嵌套异常为org.hibernate.exception.JDBCConnectionException:无法打开连接 org.springframework.transaction.CannotCreateTransactionException:消息请求处理失败;嵌套异常为无法打开Hibernate会话进行事务处理;嵌套异常为org.hibernate.exception.JDBCConnectionException:无法打开连接 org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常是org.springframework.transaction.CannotCreateTransactionException:无法打开Hibernate会话进行事务处理;嵌套异常是org.hibernate.exception.JDBCConnectionException:无法打开连接org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

我已经在我的属性文件中为我的数据库添加了适当的信息,所以我不认为这是问题所在。

application.properties

代码语言:javascript
复制
#DB
db.driver = com.mysql.jdbc.Driver
db.url = jdbc:mysql://{OPENSHIFT_MYSQL_DB_HOST}:{OPENSHIFT_MYSQL_DB_PORT}/springmvc
db.username = {OPENSHIFT_MYSQL_DB_USERNAME}
db.password = {OPENSHIFT_MYSQL_DB_PASSWORD}

#Hibernate
hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
hibernate.show_sql = true
entitymanager.packages.to.scan = org.example.app.model
hibernate.cache.provider_class = org.hibernate.cache.NoCacheProvider

注意:在我的实际代码中,我有实际的OPENSHIFT_MYSQL_DB_HOST和OPENSHIFT_MYSQL_DB_PORT值,而不是那些占位符!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-06-25 04:20:30

我忘了回答这个问题。

我只想再次澄清,使用'OPENSHIFT‘变量,而不是把尖锐的值在application.properties中解决了这个问题。

jdbc:mysql://${OPENSHIFT_DB_HOST}:${OPENSHIFT_DB_PORT}/${OPENSHIFT_APP_NAME} = db.url db.username = ${OPENSHIFT_MYSQL_DB_USERNAME} db.password = ${OPENSHIFT_MYSQL_DB_PASSWORD}

票数 1
EN

Stack Overflow用户

发布于 2013-06-20 18:03:46

确保mysql墨盒已经启动并运行;如果需要,请尝试重新启动它。否则,请张贴您的属性文件。此外,请阅读下列线程,它可能有帮助:

https://www.openshift.com/forums/openshift/hibernate-mysql-connection-failing https://www.openshift.com/forums/openshift/mysql-db-stops-responding-after-some-time

票数 0
EN

Stack Overflow用户

发布于 2013-06-20 18:47:34

感谢你在我们的论坛上发帖:

https://www.openshift.com/forums/openshift/openshift-app-cant-connect-to-mysql-jdbcconnectionexception-could-not-open

看来您会想要使用:

db.username = {OPENSHIFT_MYSQL_DB_USERNAME} db.password = {OPENSHIFT_MYSQL_DB_PASSWORD}

而不是: db.username = root db.password = pass

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17204482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档