如何重置 MySQL 或 MariaDB 根密码

几个月前,我有 在 Ubuntu 18.04 中设置 LAMP 堆栈 服务器。 今天,我尝试在我的数据库服务器中以 root 用户身份登录,但我完全忘记了密码。 经过几次网络搜索并浏览了 MySQL 论坛,我成功地重置了 MySQL root 用户密码。 对于那些想知道如何做到这一点的人,这个简短的教程解释了在 Linux 和类 Unix 操作系统中重置 MySQL 或 MariaDB 根密码的步骤。

重置 MySQL 或 MariaDB 根密码

首先,停止数据库服务器。

如果您使用 MySQL,请键入以下命令并按 ENTER 键。

$ sudo systemctl stop mysql

对于 MariaDB:

$ sudo systemctl stop mariadb

接下来,使用以下命令重新启动数据库服务器而不进行权限检查:

$ sudo mysqld_safe --skip-grant-tables &

在这里, --skip-grant-tables选项允许您在没有密码和所有权限的情况下进行连接。

如果您使用此选项启动服务器,它还会启用 --skip-networking用于阻止其他客户端连接到数据库服务器的选项。

而且,与号 (&) 符号用于在后台运行命令,因此您可以在以下步骤中键入其他命令。

请注意,上述命令很危险,您的数据库服务器会变得不安全。 您应该只在短时间内运行此命令来重置密码。

接下来,登录到您的 MySQL/MariaDB 服务器 root 用户:

$ mysql

mysql> 或者 MariaDB [(none)]> 提示,运行以下命令重置数据库 root 用户密码:

UPDATE mysql.user SET Password=PASSWORD('ostechnix') WHERE User="root";

代替 ostechnix 在上面的命令中使用您自己的密码。

然后,键入以下命令以退出 mysql 控制台。

FLUSH PRIVILEGES;
exit

最后,关闭您之前启动的正在运行的数据库服务器 --skip-grant-tables 选项。 为此,请运行:

$ sudo mysqladmin -u root -p shutdown

您将被要求输入您的 mysql/mariadb root 您在上一步中设置的用户密码。

Enter password:  [2]- Done sudo mysqld_safe --skip-grant-tables

现在,使用命令正常启动 mysql/mariadb 服务:

$ sudo systemctl start mysql

对于 MariaDB:

$ sudo systemctl start mariadb

使用以下命令验证密码是否确实已更改:

$ sudo mysql -u root -p

而且,这就是现在的全部。 希望您觉得这个有帮助。

数据库LinuxMariaDBMySQL重设mariadb密码重设mysql root密码root密码