如何重设MySQL的root密码

有时候我们忘记了根密码,无法登录MySQL,我们就想重置密码。这种情况在我们大家身上大多时候都会发生。在本文中,我们将为大家讲解从命令行实用程序中重置MySQL根密码的过程。
要在MySQL或MariaDB上执行任何命令,首先,我们应该知道系统上运行的是哪个版本的数据库系统。恢复root密码的不同命令取决于MySQL或MariaDB的版本。
你可以使用下面的命令找到你的数据库系统的版本。
$ mysql --version
如果你使用的是MySQL,你会得到类似下面的输出。
Output:
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
或者如果使用MariaDB,你会得到如下的输出。
Output:
mysql Ver 15.1 Distrib 10.1.33-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
如何重置MySQL或MariaDB的root密码
要重置MySQL或MariaDB的根密码,需要按照以下步骤进行。
步骤1、停止MySQL/MariaDB服务
你需要先停止MySQL服务器,通过使用以下命令。
$ sudo systemctl stop mysql
步骤2、在不加载授权表的情况下启动MySQL/MariaDB服务器。
使用以下命令启动数据库服务器而不加载授权表。
$ sudo mysqld_safe --skip-grant-tables &
使用-skip-grant-tables选项来忽略grant表的加载,它允许任何人在没有密码的情况下以所有权限访问你的数据库服务器。
命令末尾的&是用来在后台执行或运行程序的,它允许你继续使用shell。
步骤3、登录MySQL/MariaDB shell。
现在你可以作为root用户连接到数据库服务器,不需要密码,如下所示。
$ mysql -u root
步骤四、设置新的根密码。
要为MySQL 5.7.6及以后版本或MariaDB 10.1.20及以后版本设置新密码,请运行以下命令。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MY_NEW_PASSWORD';
mysql> FLUSH PRIVILEGES;
如果ALTER USER命令对你不起作用,你可以直接使用下面的命令来修改用户表。
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MY_NEW_PASSWORD')
WHERE User = 'root' AND Host = 'localhost';
mysql> FLUSH PRIVILEGES;
如果你使用的是MySQL 5.7.5和更早的版本或MariaDB 10.1.20和更早的版本,请运行以下命令。
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
mysql> FLUSH PRIVILEGES。
在这两种情况下,如果命令执行成功,你将看到以下输出。
Output:
Query OK, 0 rows affected (0.00 sec)
步骤五、正常停止并启动MySQL/MariaDB服务器。
现在,新的root密码已经设置好了,通过运行以下命令停止数据库。
$ mysqladmin -u root -p shutdown
你的屏幕会提示输入新的root密码进行确认,停止服务。
以正常模式启动数据库服务器,如下图所示。
对于MySQL数据库服务器,运行:
$ sudo systemctl start mysql
对于MariaDB数据库服务器,运行。
$ sudo systemctl start mariadb
步骤6、验证新创建的密码
你可以验证新创建的密码是否被正确应用,尝试在数据库服务器上登录,如下所示。
$ mysql -u root -p
上述命令的输出会提示输入新的root密码。输入密码并按回车键,就可以登录数据库服务器了。
本文适用于所有Linux发行版,包括Ubuntu 18.04、20.04、CentOS 7、8和Debian 9、10等。希望你已经学会了如何重置MySQL/MariaDB的root密码。A5互联https://www.a5idc.net/

原文地址:https://www.cnblogs.com/a5idc/p/13812787.html