忘记了您的MySQL root密码?不用担心,这发生在我们所有人身上。

在本教程中,我们将向您展示如何在忘记密码的情况下重置MySQL根密码。本指南应适用于任何现代Linux发行版,例如Ubuntu 18.04和CentOS7。

先决条件

继续执行以下步骤之前,请确保您以具有sudo特权的用户身份登录服务器。

确定服务器版本

根据系统上运行的MySQL或MariaDB服务器版本,您将需要使用不同的命令来恢复root密码。

您可以通过发出以下命令来找到服务器版本:

mysql --version

如果您的系统中安装了MySQL,则输出将类似于以下内容:

mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

或针对MariaDB的输出如下:

mysql  Ver 15.1 Distrib 10.1.33-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

请务必记下您正在运行的MySQL或MariaDB版本。

如何重设MySQL或MariaDB根密码

按照以下步骤重置您的MySQL / MariaDB root密码:

1.停止MySQL/MariaDB服务

要更改root密码,首先我们需要停止MySQL服务器。为此,请键入以下命令:

sudo systemctl stop mysql

2.在不加载授权表的情况下启动MySQL / MariaDB服务器

启用--skip-grant-tables选项后,任何人都可以不使用密码并拥有所有特权地连接到数据库服务器。

要启动数据库服务器而不加载授权表,请输入:

sudo mysqld_safe --skip-grant-tables &

上面命令末尾的&字符&将导致程序在后台运行,因此我们可以继续使用shell。

3.登录到MySQL shell

现在,您可以以root用户身份连接到数据库服务器,而无需提示输入密码:

mysql -u root

4.设置一个新的root密码

如果您拥有MySQL 5.7.6和更高版本或MariaDB 10.1.20和更高版本,请运行以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';
FLUSH PRIVILEGES;

如果ALTER USER语句对您不起作用,请尝试直接修改用户表:

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

运行如果您拥有MySQL 5.7.5和更低版本或MariaDB 10.1.20和更低版本,请执行以下命令:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
FLUSH PRIVILEGES;

在两种情况下,如果一切顺利,您应该看到以下输出:

Query OK, 0 rows affected (0.00 sec)

5.正常停止和启动数据库服务器

现在已经设置了root密码,我们需要停止数据库服务器并正常启动它。

使用以下命令停止数据库服务器:

mysqladmin -u root -p shutdown

系统将提示您输入新的root密码:

正常启动数据库服务器,对于MySQL,键入:

sudo systemctl start mysql

对于MariaDB,键入:

sudo systemctl start mariadb

6.验证密码

要验证是否正确应用了新的root密码,请输入:

mysql -u root -p

系统将提示您输入新的root密码。输入它,您应该登录到数据库服务器。

结论

在本教程中,您学习了如何重置MySQL或MariaDB根密码。确保新的root密码安全可靠,并将其保存在安全的地方。

如果您想学习如何管理MySQL用户帐户和数据库,现在可以查看本教程

如有任何疑问,请随时发表评论。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持