本机mysql中设置用户root@%,密码1234,全局权限all,eclipse的dbbrowser能连,navicat也能连,jdbc就不能连,jdbc连接语句
jdbc.url=jdbc:mysql://127.0.0.1:3309/ccc?characterEncoding=gb2312
jdbc.username=root
jdbc.password=1234
jdbc.driverClassName=com.mysql.jdbc.Driver,
项目报错
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES),
网上说法
1:赋予权限,我的root用户有所有的全局权限,甚至数据库特定权限也全部赋予后,也不能连。
2:去掉skip-socket***,我的my.ini/my.cnf里没有这个
请问还有什么办法?

解决方案 »

  1.   

    从描述来看,其它工具是可以登录的,尤其dbbrowser其实也是用的JDBC来访问的。
    那么检查下 user 这张表,关于root用户中,Host这个字段的取值是否为“%”。
    这个限制root的登录位置。
      

  2.   

    建议楼主修改一下mysql的密码
    在程序没有错的情况下
    先停止mysql服务,然后打开命令行。输入mysqld_safe --skip-grant-tables
    然后输入 mysql  -u root
    然后修改密码update user set Password = PASSWORD('新密码') where User ='root';
    当然,密码也可以不改
    然后flus privileges接着quit退出
    然后重启mysql。
    搞定
      

  3.   

    本机mysql中设置用户root@%
    亲,请把用户名改为root
      

  4.   

    连接mysql的时候,'root'@'localhost'、'root'@'10xxx',也许我没表达清楚,root@%指的是用户名是root,限制host为%
      

  5.   

    mysql的默认端口号不是3306么,lz自己设的3309?
      

  6.   

    dbbrowser也是jdbc的话,就奇怪了,驱动一样,user库中%没错,
      

  7.   

    3309自己设置的,这个不影响的,好像root@%时,jdbc怎么连都不行,不过mysql设置为root@localhost就好了,这是怎么回事呢,