windows中mysql本地账号密码忘记,更新账号密码
话不多说
1,先停止mysql服务(手动关(右键桌面电脑图标—管理—服务–找到mysql服务),或者再cmd中:net stop mysql(如果这个命令有问题按照1步骤里面的找到电脑里面的服务看看名字对不对))
2,直接在cmd中窗口中输入(MySQL8.0以后使用)mysqld --console --skip-grant-tables --shared-memory(跨过权限校验启动MySQL,网上有些很早的博客都过期了,mysqld --console --skip-grant-tables这个都不起作用了)
3,重新打开一个cmd界面,在里面输入mysql
4,接着查询出所有数据库show databases,会看到里面有一个mysql的库;
5,进入mysql库中 use mysql;
接着可以直接更新:update user set host=“root” and password=root,这样会报错提示password未知,因为mysql 5.7.9 之后取消了password 函数,将possword改成authentication_string;
但是authentication_string=password(“123456”) 会报错,因为:authentication_string字段下只能是MySQL加密后的43位字符串密码;这个时候可以直接清空密码 UPDATE user SET authentication_string=“” WHERE user=“root”; 无密码登录
或者使用MD5加密后的密码(去百度找网上的MD5在线加密或者自己写一个工具类)
6,查看所有表 show tables;
7,查看用户表 select user,host,authentication_string from user;(authentication_string是经过MD5加密过的)
最后重启电脑(重启以后记得重新把服务开开:net start mysql(mysql是服务名称,如果这个命令有问题按照1步骤里面的找到电脑里面的服务看看名字对不对))就可以了;