如何在Ubuntu 16.04中重置MySQL 5.7 root密码

本文概述

  • 1.停止活动的MySQL服务
  • 2.以安全模式启动MySQL
  • 3.以root用户身份访问
  • 4.修改密码
  • 5.停止安全的MySQL并开始正常服务
你是否忘记了服务器中MySQL的root密码?你是否在服务器中重新安装了MySQL, 是否输入了错误的密码, 现在你无法访问MySQL服务器?无论是什么原因, 在发生上述类似情况时, 知道如何在MySQL服务器中重置root密码都是非常重要的。
在本教程中, 我们将展示如何在Ubuntu 16.04中重置MySQL服务器的根密码。
1.停止活动的MySQL服务第一步, 你需要停止任何正在运行的活动MySQL实例:
sudo service mysql stop

这将允许你以安全模式启动mysql服务。
2.以安全模式启动MySQL如果你确定没有任何MySQL进程在后台运行, 则可以使用mysqld_safe启动MySQL的安全版本。但是, 它将使用skip-grant-tables参数执行:
mysqld_safe --skip-grant-tables &

这使任何人都可以不使用密码并具有所有特权进行连接, 并禁用帐户管理语句, 例如ALTER USER和SET PASSWORD。因为这是不安全的, 所以如果使用– skip-grant-tables选项启动服务器, 它将自动启用– skip-networking以防止远程连接。
3.以root用户身份访问既然mysql在本地运行且没有任何安全性验证, 则需要在MySQL CLI中使用以下命令以root用户身份登录:
mysql -u root mysql

4.修改密码现在, 你可以访问mysql CLI了, 你将可以毫无问题地运行查询, 包括更改Root密码的查询。首先, 使用以下查询将数据库更改为mysql:
use mysql;

然后, 在MySQL 5.7中, 你可以使用以下查询更改用户密码, 如你所见, 在这种情况下, 该用户将是root用户:
update user set authentication_string=password('YOUR-NEW-PASSWORD') where user='root';

警告:如果你在运行上一个查询后遇到以下异常:
错误1820(HY000):在执行此语句之前, 必须使用ALTER USER语句重置密码。
你可以通过首先运行以下查询来解决此错误:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOUR-NEW-PASSWORD';

然后, 再次运行更新查询, 它将再次运行(有关此问题的更多信息, 请参见此处)。就是这样!现在, 你将可以在下一步中使用新密码以root用户身份登录mysql。
5.停止安全的MySQL并开始正常服务使用以下命令停止MySQL的安全版本:
sudo service mysql stop

然后使用以下命令重新启动正常服务:
service mysql start

服务正确启动后, 请使用以下命令访问MySQL CLI:
mysql -u root -p

这将提示你输入你先前为root用户设置的密码, 仅此而已!
【如何在Ubuntu 16.04中重置MySQL 5.7 root密码】编码愉快!

    推荐阅读