应用是java开发的,部署与tomcat下。服务器是suse11 的系统,mysql我在本机使用客户端连接正常,甚至我跑在本机eclipse里的程序也能正常连接服务器上部署的mysql。但是服务器上部署的应用就是无法连接服务器上的mysql,异常如下:java.sql.SQLException: Unable to open a test connection to the given database. JDBC url = jdbc:mysql://localhost:3306/estate_map?useUnicode=true&characterEncoding=UTF-8, username = root. Terminating connection pool. Original 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 java.sql.DriverManager.getConnection(DriverManager.java:571)
        at java.sql.DriverManager.getConnection(DriverManager.java:215)
        at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:230)
        at com.jolbox.bonecp.BoneCP.<init>(BoneCP.java:255)
        at com.qihecn.datastore.ConnectionManager.initConnectionPool(ConnectionManager.java:150)
        at com.qihecn.datastore.ConnectionManager.<init>(ConnectionManager.java:39)
        at com.qihecn.datastore.ConnectionManager.getInstance(ConnectionManager.java:44)
        at com.qihecn.core.init.SystemServlet.init(SystemServlet.java:69)
        at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:724)

解决方案 »

  1.   

    在服务器上能telnet数据库机器的3306端口看通不通
      

  2.   

    服务器上可以,我本机跑的程序都能连接,我在windows的服务器上部署的应用也能连接,就是本机的应用不能连接。
      

  3.   

    “java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)”,账号验证错误。
      

  4.   

    检查一下版本,如果驱动与MYSQL数据库版本不致会导致无法连接。
      

  5.   

    本帖最后由 ACMAIN_CHM 于 2013-08-04 10:25:53 编辑