经常会有小伙伴在用客户端工具连接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命令修改用户权限:
- 选择数据库 : 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服务器了。