Mysql8.0很多地方和之前有所不同,接下来说下如果误删了root,如何快速恢复root。
提示:本方法虽快捷有效,但会删除所有数据库文件,就是data文件夹里的数据库。
win+R键键入services.msc(也可以“计算机”右键-》管理),找到mysql服务停掉
进入mysql文件夹,找到data文件夹并删除;
再次进入services.msc,运行mysql服务,点击启动;
cmd窗口进入mysql\bin文件路径,运行mysqld --initialize --console
结果类似如下:
2021-06-06T02:08:11.300849Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is
deprecated. Please use --explicit_defaults_for_timestamp server option (see doc
umentation for more details).
2021-06-06T02:08:11.724874Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-06-06T02:08:12.024891Z 0 [Warning] InnoDB: Creating foreign key constraint
system tables.
2021-06-06T02:08:12.056893Z 0 [Warning] No existing UUID has been found, so we a
ssume that this is the first time that this server has been started. Generating
a new UUID: 35611a71-b8b8-11e9-8e24-28d24409926b.
2021-06-06T02:08:12.064893Z 0 [Warning] Gtid table is not ready to be used. Tabl
e 'mysql.gtid_executed' cannot be opened.
2021-06-06T02:08:12.076894Z 1 [Note] A temporary password is generated for root@
localhost: QrWg4Y!sh:(k
注意:最后面的就是暂时生成的root账户密码:QrWg4Y!sh:(k
键入mysql -u root -p密码; -p和密码一定要连在一起才有效,中间没有空格;
注意:p是password的缩写,按上面的例子就应键入:
mysql -u root -pQrWg4Y!sh:(k
运行sql语句:alter user root@localhost identified by ' root密码 ' ;
注意:密码要包含在 英文单引号 ‘ ’ 中,不然无效报错,末尾分号 ;也要写。
运行sql语句: select user from mysql.user;
成功显示root账户;