2015-12-02 89 views
2

我是新的openshift。我在openshift上創建了Tomcat 7(JBoss EWS 2.0)應用程序來託管我的web應用程序。現在我正在部署我的戰爭文件,並面臨一個錯誤。Java Webapp無法在openshift上連接mysql

我的web應用程序無法連接到mysql。如下錯誤:

java.sql.SQLException: Access denied for user 'admink5J5aXX'@'127.x.x.x' (using password: YES) 

這裏是我的配置連接:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
    destroy-method="close"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="${db.url}" /> 
    <property name="username" value="${db.username}" /> 
    <property name="password" value="${db.username}" /> 
</bean> 

還有屬性是:

db.username=admink5J5aXX 
db.password=password 
db.url=jdbc:mysql://127.x.x.x:3306/myapp 

用戶名,密碼和主機是由OpenShift提供。

env | grep MYSQL 
OPENSHIFT_MYSQL_DB_PORT=3306 
OPENSHIFT_MYSQL_DB_HOST=127.x.x.x 
OPENSHIFT_MYSQL_DB_PASSWORD=password 
OPENSHIFT_MYSQL_IDENT=redhat:mysql:5.5:0.2.20 
OPENSHIFT_MYSQL_DB_USERNAME=admink5J5aXX 
OPENSHIFT_MYSQL_DB_URL=mysql://admink5J5aXX:[email protected]:3306/ 
OPENSHIFT_MYSQL_VERSION=5.5 

我試圖改變db.url=jdbc:mysql://127.x.x.x:3306/myappdb.url=jdbc:mysql://127.0.0.1:3306/myappdb.url=jdbc:mysql://localhost:3306/myappjdbc:mysql://${OPENSHIFT_MYSQL_DB_HOST}:${OPENSHIFT_MYSQL_DB_PORT}/${OPENSHIFT_APP_NAME}但我仍然有錯誤,我的web應用程序無法正常工作。

更新:

mysql> select user, host from mysql.user; 
+--------------+-------------+ 
| user   | host  | 
+--------------+-------------+ 
| admink5J5aXX | %   | 
| admink5J5aXX | 127.x.x.x | 
+--------------+-------------+ 

是否有任何人能夠解決這個錯誤的根本原因?請幫忙! :(

在此先感謝

P/S:我的英語不太好

+0

你能夠ssh到你的應用程序(或使用端口轉發)並訪問mysql數據庫e與那些相同的憑據?這是一個縮放的應用程序嗎?您試圖訪問的數據庫是否與代碼相同? – 2015-12-02 19:59:46

+0

對於遲到的回覆,@ corey112358。我已經從工作中回來了。是的,當使用端口轉發時,我可以將SSH應用程序連接到mysql數據庫。我的應用程序不是規模。我試圖訪問的數據庫是我的應用程序的一部分。 –

+2

您的連接配置使用db.username作爲密碼'';這只是這個問題中的一個錯字,還是你有相同的部署? –

回答

2

有在這種情況下的連接配置錯誤;用戶名作爲密碼:。

<property name="password" value="${db.username}" /> 

...應該是:

<property name="password" value="${db.password}" />