MySQL / MariaDB 忘记 root 密码处理方法

这里以本人使用的MariaDB 10.11为例(操作系统:Rocky Linux 9.3),MySQL 5.7之后的版本应该也适用(未经实际测试)。

一、在my.ini文件里,“[mysqld]”之后加一行,添加设置项:skip-grant-tables ,如下图

MySQL / MariaDB 忘记 root 密码处理方法插图

二、重启MySQL / MariaDB;

三、进入终端,使用下面命令登录MySQL / MariaDB:

mysql -uroot -p

四、密码随便输入,或者不输入,然后按回车登录;

MySQL / MariaDB 忘记 root 密码处理方法插图1

五、输入“use mysql”,切换到“mysql”表;

六、执行“flush privileges;”命令,刷新权限;

MySQL / MariaDB 忘记 root 密码处理方法插图2

七、执行以下命令,修改root密码:

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
MySQL / MariaDB 忘记 root 密码处理方法插图3

如果还有root@127.0.0.1用户的话,最好再执行以下命令:

        ALTER USER 'root'@'127.0.0.1' IDENTIFIED BY '新密码';

八、执行“flush privileges;”命令,刷新权限;

九、退出 MySQL / MariaDB ,把my.ini中刚刚添加的“skip-grant-tables”一行删除,然后重启 MySQL / MariaDB 服务,完成root密码的强制重置。

注意:有部分朋友可能在my.ini中添加skip-grant-tables参数后,重置密码,会遇到以下类似的提示:

Column ‘Password’ is not updatable.

The MariaDB(或 MySQL) server is running with the –skip-grant-tables option so it cannot execute this statement.

这一般是添加 skip-grant-tables 参数重启服务后,没有刷新权限所导致。一定要先刷新了权限,才能重置密码。此外,一定要记得,密码重置结束后,把my.ini中的 skip-grant-tables 设置项删除。

如需转载本站的文章,请先通过电子邮件的方式联系站长,站长确认后方可转载,并需要注明出处。

为您推荐