• 教你找回MySQL管理员root密码的3个妙招


    📢📢📢📣📣📣
    哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验
    一位上进心十足的【大数据领域博主】!😜😜😜
    中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
    擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
    ✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
    ❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

    前言

    最近有粉丝和网友常问到,如何找回MySQL管理员root的密码的方法,总结以下方法分享给大家

    📣 1.init-file找回

    在MySQL中,若root密码丢失则无法直接找回,只能通过特殊方式来修改密码。
    步骤1:先停止MySQL服务 Kill -9 进程号
    步骤2:编辑修改密码文件
    alter user 'root'@'%' identified by 'jeames';
    alter user 'root'@'localhost' identified by 'jeames';
    步骤3:用如下方法启动MySQL
    mysqld_safe --defaults-file=/etc/my.cnf --init-file=/tmp/mysql-init.sql &
    步骤4:修改密码
    alter user root@'localhost' identified with mysql_native_password by 'root';
    alter user root@'%' identified with mysql_native_password by 'root';
    flush privileges;
    步骤4:关闭数据库后重启
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    若是 Windows 服务,则可以通过如下命令启动:
    D:\MySQL\mysql-8.0.15-win64\bin\mysqld --defaults-file=D:\MySQL\mysql-8.0.15-win64\data803314\mysql803314.ini --init-file=d:\mysql-init.sql --console

    📢📢📢 注意,此时可以以任意一个密码登陆也可以以一个空密码登陆 MySQL

    📣 2.skip-grant-tables找回

    步骤1:先停止MySQL服务
    步骤2:启动 MySQL 服务
    mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-tables &
    注意,此时可以以任意一个密码登陆也可以以一个空密码登陆 MySQL
    
    • 1
    • 2
    • 3
    • 4

    若 MySQL 是 8.0 且安装在 Windows 上,则需要加上–shared-memory 参数:
    G:\mysql-8.0.23-winx64\bin\mysqld --datadir=G:\mysql-8.0.23-winx64\data80323308 --console --skip-grant-tables --shared-memory
    然后再开一个窗口,执行下面命令,此种方法使用内存的方式启动
    cd G:\mysql-8.0.23-winx64\bin

    在这里插入图片描述
    在这里插入图片描述

    📣 3.修改参数文件找回

    1.用命令编辑/etc/my.cnf配置文件,即:vim /etc/my.cnf 或者 vi /etc/my.cnf
    2.在[mysqld]下添加skip-grant-tables,然后保存并退出
    3.重启mysql服务:service mysqld restart
    4.更改root用户名
    重启以后,执行mysql命令进入mysql命令行
    5.修改root用户密码,此处注意,有时候会报不允许修改,先flush privileges再执行即可
    --5.7版本
    SQL> update mysql.user set authentication_string=password('root') where user='root';
    SQL>  flush privileges;
    --8.0版本
    mysql> alter user root@'localhost' identified with mysql_native_password by '1'; 
    --查询
    mysql> select user,host,grant_priv,super_priv,authentication_string,password_last_changed 
    from mysql.user; 
    6.把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service mysqld restart
    好了,下面就可以用root新的密码登录了!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    Windows11企业版安装WSL2和Ubuntu发布版(避坑)
    吐血总结 50道Python面试题集锦
    Apache POI简介
    小米商城侧导航栏的实现
    JavaScript相关操作
    Educational Codeforces Round 133 (Rated for Div. 2)A.B
    Android中focusableInTouchMode会导致第一次点击事件失效
    2023届C/C++软件开发工程师校招面试常问知识点复盘Part 3
    获取到Nginx默认反向后的端口为80导致请求失败、Get请求取不到参数问题
    MySQL基础架构详解
  • 原文地址:https://blog.csdn.net/weixin_41645135/article/details/127626718