在本教程中, 您学习了如何重置 MySQL 或 MariaDB root 密码. 确保您的新 root 密码足够复杂, 并将其保存在安全的地方.
1. 前言
忘记你的 MySQL root 密码? 别担心, 它发生在我们所有人身上.
在本教程中, 我们将向您展示如何重置 MySQL root 密码, 以防您忘记密码. 本教程适用于任何现代 Linux 发行版, 如 Ubuntu 18.04,CentOS 7,Debian 等等.
2. 准备工作
在继续执行以下步骤之前, 请确保以具有 sudo 权限的用户身份登录服务器.
根据您在系统上运行的 MySQL 或 MariaDB 服务器版本, 您将需要使用不同的命令来恢复 root 密码.
你可以通过以下命令查到你的 MySQL 版本:
[root@zcwyou ~]# MySQL --version
如果你的系统中已经安装了 MySQL, 输出将如下所示:
MySQL Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1
请务必记下您正在运行的 MySQL 或 MariaDB 版本.
3. 怎么重置 MySQL 或 MariaDB 的 root 密码
按以下教程步骤重置 MySQL 密码
要更改 root 密码, 首先我们需要停止 MySQL 服务器. 为此, 请键入以下命令:
sudo systemctl stop MySQL
怎么重置 MySQL 或 MariaDB 的 root 密码
4. 略过 grant 授权表启动 MySQL/MariaDB 服务
启用 --skip-grant-tables 选项后, 任何人都可以在没有密码和所有权限的情况下连接到数据库服务器.
要启动数据库服务器而不加载 grant 授权表, 请键入:
[root@zcwyou ~]# mysqld_safe --skip-grant-tables &
上面命令末尾的 & 符号将导致程序在后台运行, 因此我们可以继续使用 shell.
5. 登录 `mysql` 命令行界面
现在, 您可以以 root 用户身份连接到数据库服务器, 而不会提示您输入密码:
[root@zcwyou ~]# MySQL -u root
6. 重设 MySQL 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')
- MySQL> 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;
在这两种情况下, 如果一切顺利, 您应该看到以下输出:
Query OK, 0 rows affected (0.00 sec)
7. 停止 MySQL 数据库和重新启动正常模式
现在, 我们已经重置了 MySQL 数据库的密码, 我们需要重新启动到正常模式
使用以下命令停止数据库运行:
[root@zcwyou ~]# mysqladmin -u root -p shutdown
启动 MySQL 数据库:
[root@zcwyou ~]# systemctl start MySQL
启动 MariaDB 数据库
[root@zcwyou ~]# systemctl start mariadb
8. 验证新密码
输入以下命令, 验证刚刚设置的新密码:
[root@zcwyou ~]# MySQL -u root -p
提示你需要输入刚刚设置的新密码, 如无意外, 你应该可以正常登录到数据库中.
9. 结论
在本教程中, 您学习了如何重置 MySQL 或 MariaDB root 密码. 确保您的新 root 密码足够复杂, 并将其保存在安全的地方.
来源: http://database.51cto.com/art/201909/602653.htm