如何重设MySQL root密码
时间:2020-03-05 15:30:22 来源:igfitidea点击:
我们忘记了MySQL的root密码吗?
不用担心,这发生在我们所有人身上。
在本文中,我们将向我们展示如何从命令行重置MySQL root密码。
识别服务器版本
根据系统上运行的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根密码:
1.停止MySQL/MariaDB服务
要首先更改root密码,我们需要停止MySQL服务器。
为此,请键入以下命令:
sudo systemctl stop mysql
2.在不加载授权表的情况下启动MySQL/MariaDB服务器
在不加载授权表的情况下启动数据库服务器:
sudo mysqld_safe --skip-grant-tables &
上面命令末尾的&符将使程序在后台运行,因此我们可以继续使用该shell程序。
使用“ --skip-grant-tables”选项时,任何人都可以连接到数据库服务器,而无需输入密码并授予所有特权。
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密码。
输入它,我们应该登录到数据库服务器。