发表于 2024-12-4 15:49:33

如何重置MySQL root密码

忘记你的MySQL root密码? 别担心,它可能发生在我们所有人身上。

在本教程中,我们将向您展示如何重置MySQL root密码,以防您忘记密码。 本指南适用于任何现代Linux发行版,如Ubuntu 18.04和CentOS 7。

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

确定服务器版本

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

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

mysql --version
如果您的系统中安装了MySQL,则输出将如下所示:

输出结果:
mysqlVer 14.14 Distrib 5.7.22, for Linux (x86_64) usingEditLine wrapper
如果您的系统中安装了MariaDB,则输出将如下所示:

输出结果:
mysqlVer 15.1 Distrib 10.1.33-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
请务必记下您正在运行的MySQL或MariaDB版本。

如何重置MySQL或MariaDB root密码?

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

01、停止MySQL或MariaDB服务

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

sudo systemctl stop mysql
02、启动MySQL或MariaDB服务器而不加载授权表

启用--skip-grant-tables选项后,任何人都可以在没有密码和所有权限的情况下连接到数据库服务器。 要启动数据库服务器而不加载授权表,请键入:

sudo mysqld_safe --skip-grant-tables &
上面命令末尾的&符号将会使程序在后台运行,这样我们就可以继续使用shell。

03、登录MySQL shell

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

mysql -u root
04、设置新的root密码

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

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';FLUSH PRIVILEGES;
如果ALTER USER语句不能正常使用,请尝试直接修改用户表:

<p>UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD')</p><p>WHERE User = 'root' AND Host = 'localhost';</p><p>FLUSH PRIVILEGES;</p>
如果您有MySQL 5.7.5及更早版本或MariaDB 10.1.20及更早版本,请运行以下命令:

<p>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');</p><p>FLUSH PRIVILEGES;</p>
在这两种情况下,如果一切顺利,您应该看到以下输出:

Query OK, 0 rows affected (0.00 sec)
05、正常停止并启动数据库服务器

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

使用以下命令停止数据库服务器,系统将提示您输入新的root密码:

mysqladmin -u root -p shutdown
最后正常启动数据库服务器。

对于MySQL,请键入:

sudo systemctl start mysql
对于MariaDB,请键入:

sudo systemctl start mariadb
06、验证密码

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

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


原文链接:https://linux265.com/news/3381.html

页: [1]
查看完整版本: 如何重置MySQL root密码