MySQL忘记root密码之后,可以通过skip-grant-tables来暂时免密登录MySQL,从而修改root密码,但是这种方式一方面有安全隐患,另一方面也并不怎么适用于Windows系统,而且Windows环境下使用skip-grant-tables启动会报错无法启动。
通过以下方式修改MySQL8.0 on Windows的root密码,解决痛苦。
以下的cmd命令必须使用管理员模式
一、关闭本机的mysql服务。
任务管理器关闭或者找到mysql.exe的目录下cmd使用net stop mysql80
二、查找mysql配置文件my.ini的位置。
一般为C:\ProgramData\MySQL\MySQL Server 8.0
在C:\ProgramData\MySQL\MySQL Server 8.0目录下新建 root_newpass.txt文件(和my.ini同目录)文件内容为
ALTER user root@'localhost' identified by '123456';
三、使用此文件在cmd下启动一次数据库。
如有变化需要重写自己的目录
mysqld --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --init-file="C:\ProgramData\MySQL\MySQL Server 8.0\root_newpass.txt"
命令执行后界面没有变化执行下一步。
四、Ctrl+C终止运行,并重新启动Windows服务
完成。