2008-05-13 15:36:44,658 WARN  (SettingsFactory.java:117) - Could not obtain connection metadata
java.sql.SQLException: Server connection failure during transaction. 
Due to underlying exception: 'java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)'.
-----------------------------------------------------------------------------------------------------是Linux+Tomcat+MySQL部署程序.
客户端可以访问数据库,
自己写的程序也可以查询数据库,
root用户权限都给了,但不能获得数据库连接,以下是部署文件内容:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/workplat?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="1" /> </bean>

解决方案 »

  1.   

    没有给你的root授权.mysql> GRANT ALL ON *.* TO root@'%';
        [align=center]====  ====
    [/align]
      

  2.   

    谢谢!确认授权了,但还是不行.[root@hubing ~]# su - mysql
    -bash-3.00$ mysql -u root -p
    Enter password: 1
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9 to server version: 5.0.41-logType 'help;' or '\h' for help. Type '\c' to clear the buffer.mysql> grant all on *.* to root@"%" Identified by "1";
    Query OK, 0 rows affected (0.00 sec)mysql>
      

  3.   

    http://blog.chinaunix.net/u1/35320/showart_305024.html试试这里介绍的方法。
        [align=center]====  ====
    [/align]
      

  4.   

    看我发的精华帖http://topic.csdn.net/u/20071229/09/a0c7e024-0293-4e7a-9454-ba412f94d99d.html
      

  5.   

    谢谢!
    我是用的SQLYog远程连接MYSQL服务器
    客户端是可以连接上,密码可以肯定是正确的,但修改数据时不能获得连接, 访问否认为用户‘root'@'localhost’使用密码。权限都给了,不知道是什么原因!请指导!
      

  6.   

    google了下,有人说是root权限的问题,可是我在客户端可以查询数据麻烦下,谁能告诉我怎么开放linux下mysql,root@localhost全部权限.
      

  7.   

    请大家帮忙看看阿,这是user表里的用户:
    密码,权限都有了,为何访问被拒绝.2008-05-13 14:56:56,467 WARN  (SettingsFactory.java:117) - Could not obtain connection metadata
    java.sql.SQLException: Server connection failure during transaction. Due to underlying exception: 'java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)'.
    mysql> SELECT user,host,password from mysql.user;
    +------+-----------+-------------------------------------------+
    | user | host      | password                                  |
    +------+-----------+-------------------------------------------+
    | hb   | %         | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
    | root | %         | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
    | plat | %         | *4070D183DE69A1433F9FD15CCF82D2643C084A18 |
    | b    | localhost | *F33AE6DD04EF4C7C1D3105568E7FB7C1EE16C937 |
    +------+-----------+-------------------------------------------+
    4 rows in set (0.00 sec)mysql>
      

  8.   

    value="jdbc:mysql://localhost:3306/workplat?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8" />
    mysql> SELECT user,host,password from mysql.user;
    +------+-----------+-------------------------------------------+
    ¦ user  ¦ host       ¦ password                                   ¦
    +------+-----------+-------------------------------------------+
    ¦ hb    ¦ %          ¦ *E6CC90B878B948C35E92B003C792C46C58C4AF40  ¦
    ¦ root  ¦ %          ¦ *E6CC90B878B948C35E92B003C792C46C58C4AF40  ¦
    ¦ plat  ¦ %          ¦ *4070D183DE69A1433F9FD15CCF82D2643C084A18  ¦
    ¦ b     ¦ localhost  ¦ *F33AE6DD04EF4C7C1D3105568E7FB7C1EE16C937  ¦
    +------+-----------+-------------------------------------------+
    4 rows in set (0.00 sec)mysql> 
    没有看到你的user 为root HOST为LOCALHOST的
      

  9.   

    加入一条
    user 为root HOST为LOCALHOST的 
      

  10.   

    谢谢大家,刚加了,不行,还是一样的.mysql> SELECT user,host,password FROM mysql.user;
    +------+-----------+-------------------------------------------+
    | user | host      | password                                  |
    +------+-----------+-------------------------------------------+
    | hb   | %         | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
    | root | %         | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
    | root | localhost | *E6CC90B878B948C35E92B003C792C46C58C4AF40 |
    | plat | %         | *4070D183DE69A1433F9FD15CCF82D2643C084A18 |
    | b    | localhost | *F33AE6DD04EF4C7C1D3105568E7FB7C1EE16C937 |
    +------+-----------+-------------------------------------------+
    5 rows in set (0.00 sec)
      

  11.   

    用FLUSH PRIVILEGES过了,还是不行啊!
      

  12.   

    GRANT ALL PRIVILEGES ON *.* TO mysql@'192.168.70.%' IDENTIFIED BY '123456' WITH GRANT OPTION;
      

  13.   

    今天终于找到了解决办法:
    打开"MySQL Server Instance Config Wizard" (开始/程序/mysql一直找下去)
    走到用户密码设置的时候 不要在复选Enable root access from remote machines然后再一直走下去
    当然其他各步设置请与以前的配置保持一致,不要简单地按下next做完之后
    mysql控制台,进行重新分配权限操作mysql>Grant all on *.* to 'root'@"%" identified by "xxxx" with grant option;终于
    一切都好用了
      

  14.   

    我也遇到了同样的问题
    我也是按照你的方法 
    但是没有重新分配权限String url ="jdbc:mysql://localhost/first";
    Connection conn= DriverManager.getConnection(url,"root","lsg123");//first 是我的数据库名称,url为数据库的地址,root为MySQL数据库登陆的用户名 ,lsg123为密码,密码就是你登陆mysql控制台的密码这样 就可以了