error mysql Access denied for user root@localhost

经常会有小伙伴在用客户端工具连接MySQL或者命令窗口输入命令mysql -uroot -p的时候报错“ERROR 1045 (28000): Access denied for user’root’@’localhost'(using password: YES)”。遇到这样的问题可以通过以下方法解决:

编辑mysql配置文件my.ini(本人的mysql5.7(安装版),目录位C:\ProgramData\MySQL\MySQL Server 5.7\my.ini,对于绿色免安装版本,直接在解压目录找到my.ini文件进行修改即可),在[mysqld]这个条目下加入 skip-grant-tables 保存退出,然后后重启mysql服务。

1.点击“开始”->“运行”(快捷键Win+R)。

2.输入cmd进入命令窗口

3.输入mysql -u root -p,出现 password:的时候直接回车就可以进入,

这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现 password:的时候直接回车可以进入mysql命令提示符。

执行SQL命令修改用户权限:

  1. 选择数据库 : use mysql;

2. 给root用户设置新密码:

update user set password=password(“新密码”) where user=”root”;(mysql 5.6及以下版本执行该语句)

update user set authentication_string=password(“新密码”) where user=”root”;(mysql 5.7版本执行该语句)

Query OK, 1 rows affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

3.刷新数据库
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

4.退出mysql:
mysql> quit;

最后,重新修改my.ini这个文件,把我们刚才加入的 “skip-grant-tables”这行删除,保存退出再重启mysql就可以正常连接到mysql服务器了。

    原文作者:松勤软件测试
    原文地址: https://zhuanlan.zhihu.com/p/52736473
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞