Tomcat缩放应用程序无法连接MySQL数据库

时间:2014-04-09 08:19:32

标签: mysql tomcat7 scale openshift

我使用以下命令在Openshift服务器上创建了我的缩放应用程序:

rhc app create MyApp jbossews-2.0 -s

然后添加Mysql:

rhc cartridge add mysql-5.5 -a MyApp

我的应用程序使用Struts2,Spring&amp;休眠。我配置数据源如下: <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/MysqlDS"/> </bean>

JNDI“MysqlDS”在.openshift \ config \ context.xml中定义,连接url: url="jdbc:mysql://5344d4de4382ec43c9000090-myapp.rhcloud.com:37941/mydb"

问题是我的scale应用程序无法与Mysql建立连接并出现错误:  org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server. Attempted reconnect 3 times. Giving up.)

我确定用户名&amp;用于访问数据库的密码是正确的。看来Openshift服务器上的MySQL没有打开它的端口。当我尝试在freemysqlhosting.net(使用开放主机和端口)上使用外部数据库时,应用程序运行良好。但我只想在Openshift上使用MySQL db。任何有此经验的人请给我一些建议。感谢

2 个答案:

答案 0 :(得分:0)

确保在添加mysql盒后重新启动应用程序,有时环境变量在重新启动之前无法正确显示。也尝试ssh到你的装备,看看你是否可以使用“mysql”命令直接连接到你的mysql数据库。

答案 1 :(得分:0)

如果你保持.openshift / config / context.xml不变,那么MySQL数据源之前的JNDI名称实际上是jdbc / MySQLDS而不是jdbc / MysqlDS。

此前已经改变了。

遗憾的是,这里的文档http://openshift.github.io/documentation/oo_cartridge_guide.html#tomcat-cartridge-integrations不正确。