2011-12-06 15 views
0

私のアプリケーションで次のようなエラーが頻繁に発生します。関係する技術は、Sturts、hibernate、mysql、tomcatです。奇妙な部分は、アプリケーションがフリーズするのに通常数日かかります。つまり、TomcatとMySQLの両方のサービスは機能していますが、Webページは読み込めません。それは私にとっては意味がありません。tomcat、hibernate、mysql接続の問題

問題を解決するためのアイデアや指示を教えていただけますか?ありがとう。

WARN (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1) [com.mchange.v2.resourcepool.BasicResourcePool] - [email protected]0 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:885) 
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3421) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1247) 
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2775) 
    at com.mysql.jdbc.Connection.<init>(Connection.java:1555) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) 
    at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:107) 
    at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:161) 
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:113) 
    at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:728) 
    at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:32) 
    at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1258) 
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:368) 

答えて

0

dbサーバー以外のマシンからデータベースに接続する場合は、ルートユーザーを使用しない方が良いです。どのマシンからでもデータベースに接続できるdbユーザーを作成することをお勧めします。 'db1' @ '%'(参考:http://dev.mysql.com/doc/refman/5.5/en/adding-users.html

+0

app + tomcat + dbはvpsにあり、mysqlの設定はlocalhostのみです。私はhibernate.cfg.xmlをダブルチェックしました。アプリケーションの接続ユーザ名は 'root'ではありません。だから、なぜrootがスタックに表示されますか?またはlog4jを誤って構成しましたか? – Will