一、用安全模式启动mysql
在 my.ini(windows的安装目录)或 /etc/my.cnf(linux) 的最后一行添加
skip-grant-tables=1
重启mysql服务
systemctl restart mysqld
二、创建admin用户
免密码使用root登录进去
$ mysql -uroot
创建一个admin用户,并赋予所有权限
# 创建新用户,并将host设置为%(即允许所有ip连接)
create user 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Qwe@123456_';# 授予所有权限
GRANT ALL ON *.* TO 'admin'@'%';# 刷新权限
flush privileges;
三、修改user表root用户信息
1.退出安全模式
移除skip-grant-tables,重启mysql服务
2.使用admin登录
$ mysql -u admin -p Qwe@123456_
将root用户的 host, plugin, authentication_string 改成与admin相同;
update mysql.user set host='%',pulgin='mysql_native_password',authentication_string='**admin用户的该字段值'
where user='root';# 刷新权限
flush privileges;
3.使用root登录
mysql -u root -p Qwe@123456_
# 修改root密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '{密码}';# 删除admin用户
drop user 'admin'@'%';# 刷新权限
flush privileges;
示例mysql版本
mysql-8.0.36-1.el8.x86_64