mysql已经用了许久, 突然有一天发现root密码忘记了, 重置一下密码吧
Windows下在my.ini 添加 skip-grant-tables参数会启动失败,MySQL起不来。 需要使用命令行的方式进行启动。
1.免密启动MySQL 在MySQL的bin目录下启动cmd并执行以下命令即可。dadadir 需要手动指定你的dada目录, 否则也会启动失败。
cmd窗口: A mysqld --skip-grant-tables --shared-memory --datadir="C:\ProgramData\MySQL\MySQL Server 8.0\Data"
这个"datadir"路径是安装mysql时默认的路径, 如果不添加这个命令的话, 则会在"C:\Program files\MySQL\MySQL Server 8.0" 处与"bin" 同级创建一个data文件夹
然后光标就会卡在下一行不动了, 这是正常的, 说明mysql已经启动, 先把这个cmd窗口放一边.
另外启动一个cmd窗口: B mysql -uroot -p 如果需要指定端口 则增加如 '-P 13306' 不输入密码直接回车进入mysql
show databases; use mysql; (使用mysql数据表) update user set authentication_string='' where user='root';(将已忘记的密码置为空) quit; (然后退出Mysql)
关闭 cmd窗口: A, 在B中 net stop mysql
(有可能你的服务名称是别的, 可以在'我的电脑'-右键-管理-服务 找到mysql服务看看服务名称 修改为 'net stop mysqlxxx')
执行命令后, 系统会提示服务未启动
接下来执行 net start mysql (net start mysqlxxx) 或者在'我的电脑'-右键-管理-服务 中启动服务也行
然后就可以无密码进入mysql
进入后:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
grant all privileges on *.* to 'root'@'%' identified by '新密码'; (授权所有ip可访问, 这句命令不执行也可以)
FLUSH PRIVILEGES;
quit;
密码改完了