Mysql版本8.0.18
1、打开DOS窗口,执行net stop mysql;
2、输入命令mysqld --console --skip-grant-tables --shared-memory,跳过授权;
3、另开个DOS窗口,之前的DOS窗口不要动,输入mysql 进入mysql服务,输入use mysql进入mysql数据库,然后进行密码更新 ,先说我成功修改的方法
先输入:flush privileges;
再输入:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
这里123456就是新密码
4、最后再启动mysql,net start mysql
遇到的问题:
1、参考其他博主说第三步的命令可以用 update user set password=password('123456') where user='root' and host='localhost'; 但是我这边不行,会报错
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘(“123456”) where user=“root”’ at line 1
2、如果不先flush privileges; 直接ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';也会报错,所以要先flush privileges;刷新权限
补充扩展问题:
更新密码之后,我用Navicat工具登录的时候报错
解决方法就是修改密码的加密方式
1、查看一下加密方式
输入:show variables like 'default_authentication_plugin';
2、查询本地mysql用户信息
输入:select host,user,plugin from mysql.user;
3、但是Navicat不支持MySQL新版本的这种用户登录账户加密方式,所以下面我们要修改root账户的加密方式为【mysql_native_password】
输入:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
4、最后再重新打开下Navicat连接MySQL,就可以成功用root账户连接了
如果还是报密码不对,就按重置密码的流程再重置一下