MariaDB 忘记 root 密码后重置 root 密码

类别: 数据库 阅读量:4

首页>文章>所有文章>MariaDB 忘记 root 密码后重置 root 密码

在使用 MariaDB 的过程中你可能会遇到忘记 root 用户密码的情况,如果实在是想不起来原密码,只能重置 root 密码。

本问将介绍忘记了 MariaDB 数据库的 root 用户密码后重置 root 密码的通用方法,此方法适用于Linux和Windows系统。

停止 MariaDB 服务

1)Linux 系统下使用如下命令停止 MariaDB 服务:

systemctl stop mariadb

2)Window停止 MariaDB 服务的方法为:

在Windows系统进入服务管理器,找到名为 mysqld 的服务,停止此服务。

配置无需密码登录 MariaDB

要重置 root 密码,首先需要登录进 MariaDB 数据库,那么就需要配置无须密码就能够登录 MariaDB 数据库。

要实现无密码登录,需要修改 MariaDB 数据库的配置,不同的系统配置文件的位置不同:

  • Debian 系统的配置文件为:/etc/mysql/my.cnf
  • Almalinux 系统的配置文件为:/etc/my.cnf
  • Windows 系统的配置文件为安装目录下的 my.ini

在 MariaDB 的配置文件的 [mysqld] 段后面添加如下两项配置:

skip-grant-tables
skip-networking

配置解释说明:

  • skip-grant-tables:此选项允许任何人不需密码登陆 MariaDB 数据库并且拥有所有特权,但是它禁止了账户管理命令如:ALTER USERSET PASSWORD
  • skip-networking:此选项不允许远程客户端连接数据库。

重新启动 MariaDB 服务

1)Linux 系统下使用命令启动 MariaDB 服务:

systemctl start mariadb

2)Window启动 MariaDB 服务的方法为:

在Windows系统进入服务管理器,找到名为 mysqld 的服务,启动此服务。

使用 mysql 命令行连接数据库

在 shell 终端中或者命令行使用 mysql 命令连接数据库:

mysql

注:不需用户名和秘密,因为 MariaDB 启动时使用了 skip-grant-tables 选项。

重新加载授权表

登陆 MariaDB 数据库后,运行如下命令,重新加载授权表,以便使用用户管理命令:

FLUSH PRIVILEGES;

修改 MariaDB root 密码

不同的 mariaDB 版本重置 root 密码的方法不同。需要根据 MySQL 的版本使用不同的方法,那么需要到 MariaDB 官网根据 MariaDB 的版本查看对应的 MySQL 的版本。

1)对应于 MySQL 5.7.6 及之后的版本使用如下命令修改 root 密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

2)对应于 MySQL 5.7.5 及之前的版本使用如下命令修改 root 密码:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

注:把 MyNewPass 修改为你需要设置的密码

备用重置 root 密码的方法

如果使用上面的方法修改 root 密码出错,那么可以使用 ALTER USER 命令修改 root 用户的密码。

具体的代码为:

UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

注:把 MyNewPass 修改为你需要设置的密码

去除添加的选项

在重置 root 密码后,需要去除在 MariaDB 配置文件中添加的 skip-grant-tablesskip-networking 选项,然后重启 MariaDB 服务。

评论

暂无评论,快来抢沙发吧~