网站搜索

如何在 Linux 中重置 MySQL 或 MariaDB Root 密码


如果您是第一次设置 MySQL 或 MariaDB 数据库服务器,您很可能很快就会运行 mysql_secure_installation 来实施基本的安全设置。

其中一项设置是数据库根帐户的密码,您必须对其保密并仅在严格要求时使用。如果您忘记密码或需要重置密码(例如,当数据库管理员更改角色或被解雇时!)。

建议阅读: 更改 MySQL 或 MariaDB Root 密码

这篇文章将会派上用场。我们将解释如何在 Linux 中重置或恢复忘记的 MySQL 或 MariaDB root 密码。

尽管我们将在本文中使用 MariaDB 服务器,但这些说明也适用于 MySQL。

恢复 MySQL 或 MariaDB root 密码

首先,停止数据库服务并检查服务状态,我们应该看到我们之前设置的环境变量:


------------- SystemD ------------- 
systemctl stop mariadb

------------- SysVinit -------------
/etc/init.d/mysqld stop

接下来,使用 --skip-grant-tables 启动服务:


------------- SystemD ------------- 
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mariadb
systemctl status mariadb

------------- SysVinit -------------
mysqld_safe --skip-grant-tables &

这将允许您以 root 身份连接到数据库服务器而无需密码(您可能需要切换到不同的终端才能执行此操作):


mysql -u root

从那时起,请按照下面列出的步骤进行操作。


MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('YourNewPasswordHere') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;

最后,停止服务,取消设置环境变量并再次启动服务:


------------- SystemD ------------- 
systemctl stop mariadb
systemctl unset-environment MYSQLD_OPTS
systemctl start mariadb

------------- SysVinit -------------
/etc/init.d/mysql stop
/etc/init.d/mysql start

这将使之前的更改生效,允许您使用新密码连接到数据库服务器。

概括

在本文中,我们讨论了如何重置 MariaDB/MySQL root 密码。与往常一样,如果您有任何问题或反馈,请随时使用下面的评论表给我们留言。我们期待您的回音!