注意:
在重置 MariaDB & MySQL 的 root 密码之前要先安装 MariaDB & MySQL
正文:
步骤一:免密进入数据库
1.1 在 MariaDB&MySQL 文件中添加免密登录参数
# vim /etc/my.cnf
将部分内容修改如下:
......
[mysqld]
skip-grant-tables
......
1.2 使修改的配置生效
1.2.1 MariaDB 使修改的配置生效
# systemctl restart mariadb
(注意:只有当重置 MariaDB 的时候才执行这一步)
1.2.2 MySQL 使修改的配置生效
# systemctl restart mysqld
(注意:只有当重置 MariaDB 的时候才执行这一步)
步骤二:将 root 密码设置为空
2.1 不使用密码进入数据库
# mysql -u root -p
(补充:当提示输入密码时直接敲回车)
2.2 清空 root 用户密码
2.2.1 MariaDB 和 MySQL 5.7 及以下的版本将 root 密码设置为空
> update mysql.user set password='' where user='root';
(注意:只有当是重置 MariaDB 和 MySQL 5.7 及以下版本密码的时候才需要执行这一步)
2.2.2 MySQL 8.0 及以上的版本将 root 密码设置为空
> update mysql.user set authentication_string='' where user='root';
(注意:只有当是重置 MySQL 8.0 及以上版本密码的时候才需要执行这一步)
2.3 退出数据库
> quit;
步骤三:给 root 设置新密码
3.1 在 MariaDB&MySQL 文件中将免密登录参数注释掉
# vim /etc/my.cnf
将部分内容修改如下:
......
[mysqld]
# skip-grant-tables
......
3.2 使修改的配置生效
3.2.1 MariaDB 使修改的配置生效
# systemctl restart mariadb
(注意:只有当重置 MariaDB 的时候才执行这一步)
3.2.2 MySQL 使修改的配置生效
# systemctl restart mysqld
(注意:只有当重置 MySQL 的时候才执行这一步)
3.3 进入数据库
> mysql -u root -p
(补充:当提示输入密码时直接敲回车)
3.4 给 root 设置新密码
> alter user 'root'@'localhost' identified by '<password>';
3.5 退出数据库
> quit;