前言
MySQL数据库服务器内置了库名为“mysql”的数据库,用来管理MySQL服务器相关信息信息,此库中的user表用来管理数据库权限,我们可以操作user库进行权限管理相关操作,包括添加用户管理、用户权限管理等,user表相关知识可以参考以下文档:
https://blog.csdn.net/lthirdonel/article/details/79011033
https://blog.csdn.net/zmx729618/article/details/78026497
以下讲述两种修改root用户密码的方法,亲测可用。
一、 方法一
- 找到MySQL数据库安装目录下的my.ini文件,并在[mysqld]节点下添加skip-grant-tables配置;
- 重启MySQL服务;
- 重新连接MySQL,此时的MySQL不需要密码即可登录数据库(提示输入密码直接回车即可);
- 重新设置root用户密码;
- 删除my.ini修改,重启MySQL服务,再用新密码连接MySQL数据库即可。
二、 方法二
此方法不需要手动修改my.ini文件和重启MySQL服务,是通过非服务方式加skip-grant-tables运行mysql来修改mysql密码的,具体步骤如下:
- 关闭正在运行的MySQL服务。
- 打开DOS窗口,切换到mysql/bin目录。
- 执行mysqld --skip-grant-tables 命令,–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
- 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),也切换到mysql/bin目录。
- 输入mysql回车,如果成功,将出现MySQL提示符 >。
- 切换至MySQL权限数据库。
use mysql;
- 重置root密码。
UPDATE user SET password=PASSWORD("新密码") where user="root";
- 刷新权限(必须步骤)。
flush privileges;
- 退出 MySQL登录,关闭两个DOS窗口,如果发现mysql进程仍在运行的话可以结束掉对应进程来关闭。
- 启动MySQL服务,使用新密码连接MySQL数据库即可。