0%

MySQL8 重置密码

MySQL8 重置密码

前置说明

本文使用系统为 centos7, MySQL版本为 8.4 (除8以下适用)

ps: 该方法为忘记密码且无法使用安全方式启动mysql的情况下使用, 若能以安全方式启动则无需该方法

重置

  1. 停止 MySQL

    1
    sudo systemctl stop mysqld
  2. 备份数据目录

    1
    sudo cp -r /var/lib/mysql /var/lib/mysql_backup
  3. 重新初始化 MySQL(会删除所有数据)

    1
    sudo mysqld --initialize --user=mysql
  4. 启动 MySQL 并获取临时密码

    1
    2
    sudo systemctl start mysqld
    sudo grep 'temporary password' /var/log/mysqld.log

    输出行最后的: 后面就是临时密码了

  5. 使用临时密码登录

    1
    mysql -u root -p

    Enter Password: 后输入临时密码

  6. 重置密码

    1
    2
    3
    4
    5
    6
    # 把新密码替换为自己的, mysql8默认的密码检查比较严格, 不要设置的太简单
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    # 强制刷新权限
    FLUSH PRIVILEGES;
    # 退出 mysql shell
    EXIT;
  7. 重启 MySQL

    1
    sudo systemctl restart mysqld
  8. 登录 MySQL

    1
    mysql -u root -p'新密码'