日期:2014-05-17  浏览次数:20729 次

myeclipse 连接mysql 异常:java.sql.SQLException: Access denied for user 'root'@'local
客户端可以成功连接mysql,但是在IDE中跑项目就报错了:
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES),
网上找了很多,密码也改了很多次,都不行,在此求救各位大侠~
------解决方案--------------------
'root'@'localhost' 和'root'@'哪个ip' 是两个用户的,你要确保你的'root'@'localhost'用户的密码是对的
,你可以用客服端连接修改'root'@'localhost'的密码
或者
修改mysql密码的方法

use mysql 
update user set password=password('newpassword') where user='root'; 
flush privileges; 

1.通过修改MYSQL数据库中MYSQL库的USER表
       就用普通的UPDATE、INSERT语句就可以

2.在命令行中使用如下命令
       mysqladmin -u root -p password mypasswd 

弹出提示后再输入一次密码

3.可以修改MYSQL文件夹中的MY.INI文件

4.使用SET PASSWORD语句, 
mysql> SET PASSWORD FOR myuser@localhost = PASSWORD('mypasswd'); 

5.使用GRANT ... IDENTIFIED BY语句 
mysql> GRANT USAGE ON *.* TO myuser@localhost IDENTIFIED BY 'mypassword'; 

mysql忘记密码了
  Windows下的实际操作如下 
  1.关闭正在运行的MySQL。 
  2.打开DOS窗口,转到mysql\bin目录。 
  3.输入mysqld --skip-grant-tables回车。如果没有出现提示信息,那就对了。 
  4.再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。 
  5.输入mysql回车,如果成功,将出现MySQL提示符 > 
  6. 连接权限数据库>use mysql; (>是本来就有的提示符,别忘了最后的分号) 
  6.改密码:> update user set password=password("123456") where user="root"; (别忘了最后的分号) 
  7.刷新权限(必须的步骤)>flush privileges; 
  8.退出 > \q 
  9.注销系统,再进入,开MySQL,使用用户名root和刚才设置的新密码123456登陆 
------解决方案--------------------
如果想临时可用,那么就修改一下root的密码就可以登录了。
如果想长久解决这个问题,给root重新附一个权限,方法如下:
mysql> 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'
->IDENTIFIED BY 'some_pass' WITH GRANT OPTION;  

------解决方案--------------------

 <Context>
  <Resource
     name="jdbc/poc"
     type="javax.sql.DataSource"
     driverClassName="com.mysql.jdbc.Driver"
     username="账号"
     password="密码"
     url="jdbc:mysql://IP:端口/数据库"
     maxIdle="2"
     maxWait="5000"
     maxActive="4"/>
</Context>

------解决方案--------------------
use mysql;
insert into user(user, password, host) values('root', '', 'localhost');//还有很多个字段,要设置为y;也可以用客户端来添加.
flush privileges;//重中之重,关键中之关键.
-------------------------------------------------
上述执行完毕后,看下密码设置的问题,设置密码的时个,要这样子来:
update user set password=password('111111') where 条件;如果直接password='1111111',也有问题.
-------------------------------------------------
希望对你有帮助哇!