error 1045(28000):access denied for user 'root@localhost' (using password:yes)
解决该问题,网上普遍给出了以下的方法:
1.运行命令行界面,net stop mysql,然后修改my.ini文件,在[mysqld]下添加这句:skip-grant-tables;然后再net start mysql开启MySQL服务;
2.在命令行界面登录mysql:mysql -uroot -p再enter会让你输入password,这时可以跳过输入密码,直接enter进入mysql;
3.要修改密码
->use mysql;
->update user set password="(yourpassword)" where user="root";
->flash privileges;
->quit;
4.在my.ini 文件里将skip-grant-tables注释掉,再重启mysql服务(net restart mysql / 在任务管理器中重启)
5.(关键点)
尝试登录mysql,这时任然会出现error 1045错误,因为这里有一个很关键的错误:password的设置需要PASSWORD('')函数,如果直接password=“...”,mysql自己解密出来的并不是你原来想设置的密码,所以正确的修改语句:
UPDATE user SET password=PASSWORD('...') WHERE user="root";
至此,问题解决。