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

在本文中,我们将解释如何在Linux中重置或恢复忘记的MariaDB或MySQL root密码。

如果您是第一次设置MySQL或MariaDB数据库服务器,很可能很快就会运行mysql_secure_installation来实现基本的安全设置。 其中一个设置是数据库root帐户的密码 - 您必须保持该密码,并且仅在严格要求时使用。如果您忘记了密码或需要重置密码(例如,当数据库管理员更改角色或被裁员!)。

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

这篇文章会派上用场。我们将解释如何在Linux中重置或恢复forgottent 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 &
使用跳过表启动MySQL / MariaDB

使用跳过表启动MySQL / MariaDB

这将允许您以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密码。一如既往,如果您有任何问题或反馈,请随时使用下面的评论表单给我们留言。我们期待您的回音!