MariaDB 忘记 root 密码后重置 root 密码
• 2026-02-21 • 类别: 数据库 • 阅读量:4
在使用 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 USER,SET 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-tables,skip-networking 选项,然后重启 MariaDB 服务。