通过命令行参数--skip-grant-tables进行修改,其核心思想是临时关闭 MySQL 的用户权限验证系统,让你可以无需密码直接以最高权限登录,然后修改密码。(--skip-grant-tables 是一个启动选项(参数),用于启动 MySQL 服务器进程(mysqld)。 它的作用是指示 MySQL 服务器在启动时不加载、不检查权限系统相关的数据表。)

如何操作?(Windows系统为例)

  1. 停止 MySQL 服务

    win+x+a进入PowerShell, 输入:

    net stop mysql80

    关闭mysql80


  2. 准备两个DOS窗口,保证一个窗口是管理员模式:

    2.1找到并复制MySQL的bin目录(路径一般都是这个:C:\Program Files\MySQL\MySQL Server 8.0\bin),在管理员模式DOS下cd进入该文件夹,be like:

    进入bin目录

    2.2 找到并复制配置文件的路径:

    啥是配置文件?在ProgramData那找到my.ini这个文件,复制该路径:(一般是这个:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini)

my.ini配置文件路径

2.3修该默认文件路径:

在管理员DOS里输入:

mysqld  --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" --console --skip-grant-tables --shared-memory

如果你的界面是这样的话,恭喜你,已经完成90%了!

完成修改配置文件路径

2.4在另一个DOS里面进入mysql命令行客户端(此时无需输入-p就能直接接入mysql)

进入mysql命令行客户端

先看看你要修改哪一个数据库的密码

所有数据库

切换到指定数据库

use mysql;

加载权限

flush privileges;

继续输入:(这里修改的是123456,单引号里的字符串就是新密码)

alter user 'root'@'localhost' identified by '123456';

如果你的界面是这样的,那么恭喜你,已经完成root密码的修改了!

恭喜你成功修改root密码!

  3. 启动 MySQL 服务(记得关闭那两个DOS窗口!)

      mysql启动!

       至此,我们就能够使用新密码登录root账号了。

点赞(2)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)