MySQL8 重置密码
前置说明
本文使用系统为 centos7
, MySQL版本为 8.4 (除8以下适用)
ps: 该方法为忘记密码且无法使用安全方式启动mysql的情况下使用, 若能以安全方式启动则无需该方法
重置
停止 MySQL
1
sudo systemctl stop mysqld
备份数据目录
1
sudo cp -r /var/lib/mysql /var/lib/mysql_backup
重新初始化 MySQL(会删除所有数据)
1
sudo mysqld --initialize --user=mysql
启动 MySQL 并获取临时密码
1
2sudo systemctl start mysqld
sudo grep 'temporary password' /var/log/mysqld.log输出行最后的
:
后面就是临时密码了使用临时密码登录
1
mysql -u root -p
在
Enter Password:
后输入临时密码重置密码
1
2
3
4
5
6# 把新密码替换为自己的, mysql8默认的密码检查比较严格, 不要设置的太简单
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
# 强制刷新权限
FLUSH PRIVILEGES;
# 退出 mysql shell
EXIT;重启 MySQL
1
sudo systemctl restart mysqld
登录 MySQL
1
mysql -u root -p'新密码'