mysql8.0忘记密码
mysql8.0版本重置root账户密码,通过mysqld服务开启时跳过授权表,mysql账户可不通过密码连接数据库。本文参考以下文章,Windows下Mysql 8.0.17忘记root密码(重置密码)方法 、mysqld的选项参数、mysql启动参数(/etc/my.cnf)详解汇总,非常感谢。
mysqld服务跳过验证授权表开启
mysqld参数,console为发生错误时直接输出;skip-grant-tables为不通过授权表开启服务,这给了所有用户不使用密码访问所有数据表的权限;shared-memory为能使用共享内存。
- 关闭mysql服务
// 关闭mysql服务 net stop mysql
- 在cmd窗口中开启mysqld服务,其登录后不验证授权表
// 开启跳过授权表的mysqld服务 mysqld --console --skip-grant-tables --shared-memory
使用root账户连接数据库并重置密码为空
mysqld服务已在cmd窗口开启,另开窗口使用root账户连接数据库,重置数据库为空。
- 另开cmd窗口,使用root账户登录mysql,不验证密码
// root账户连接mysql mysql -u root -p
- 在mysql数据库user数据表中root账户重置密码为空
// root账户重置密码为空 update user set authentication_string='' where user='root';
- quit命令关闭mysqld服务并关闭窗口,关闭root账户登录窗口
root账户密码由空进行修改
开启mysql服务,使用root账户连接数据库并重置密码
- 重开窗口开启mysql服务
// 开启mysql服务 net start mysql
- 重开窗口使用root账户连接数据库
// 使用root账户连接数据库,密码已重置为空 mysql -u root -p
- 并重置账户密码,刷新权限并退出连接,重新连接数据库
// 重置root账户密码并刷新权限 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; flush privileges;