win10-mysql8.4-修改密码

104 阅读1分钟

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;

密码改完了