这样就能解决问题!更改您忘记的 MySQL root 用户密码

你好!
我是井上,一只来自 Beyond Co., Ltd. 四国办事处的波斯猫。

有一天,我尝试在本地计算机上登录 MySQL,但失败了。我输入密码后收到了一条错误信息。


这个博客是在反复试验中诞生的,当时我正在尝试弄清楚即使忘记了密码,如何将密码更改为新密码

在这种情况下,我采取的步骤如下:

① 检查初始密码
② 确认密码已更改 ③
登录 MySQL 并设置新密码

请务必看到最后!

初始密码在哪里?

要查看初始密码,您需要查看 /var/log 目录下的 "mysqld.log" 文件。
自 5.7 版本起,临时密码已输出到 "mysqld.log" 文件。
*目前,可用版本最高为 8.0.33。更多信息,请点击此处

要检查 MySQL 客户端版本,请输入以下命令:

[root@test-aws-harukainoue ~]# mysql --version mysql 版本 14.14 发行版 5.7.25,适用于 Linux (x86_64),使用 EditLine 包装器

我发现我本地的 MySQL 版本是 5.7 或更高版本!

[root@test-aws-harukainoue log]# pwd /var/log [root@test-aws-harukainoue log]# less mysqld.log | grep "temporary password" 2019-04-08T02:32:37.248018Z 1 [Note] 为 root@localhost 生成临时密码:x=B-:.9iaqc?

在 less 中很难找到初始密码,所以我们
将使用“grep”命令提取包含“temporary password”的字符串。
从执行结果可以看出,MySQL 的初始密码是字符串“x=B-:.9iaqc?”。
现在,让我们尝试访问 MySQL!
访问 MySQL 的命令如下:

mysql -u root -p

运行程序时,提示我输入密码,所以我输入了“x=B-:.9iaqc?”

请输入密码:错误 1045 (28000):用户“root”@“localhost”访问被拒绝(使用密码:是)

咦???这不应该发生……
无论我尝试多少次,都会出现错误信息,我无法登录 MySQL。
这意味着我无法更改 MySQL 密码……
我以为我以前可能更改过 MySQL 密码,但记不起来了,所以
我尝试了另一种方法!

这样就解决了!设置新密码

用 vi 打开“my.cnf”文件并进行编辑。

[root@test-aws-harukainoue etc]# vi /etc/my.cnf

在 [mysqld] 下输入“skip-grant-tables”并保存文件。
,请参阅
之前的博文[面向 Linux 初学者]“完成!使用 vi 命令编辑和保存文件”。重启 MySQL。

[root@test-aws-harukainoue etc]# systemctl restart mysqld

输入 MySQL。

[root@test-aws-harukainoue etc]# mysql -u root 欢迎使用 MySQL 监视器。命令以 ; 或 \g 结尾。您的 MySQL 连接 ID 为 2 服务器版本:5.7.25 MySQL Community Server (GPL) 版权所有 (c) 2000, 2019, Oracle 和/或其附属公司。保留所有权利。Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。输入“help;”或“\h”获取帮助。输入“\c”清除当前输入语句。mysql>

现在您可以登录 MySQL,请运行以下命令以反映权限并设置新密码。

mysql> flush privileges; 查询成功,影响 0 行 (0.01 秒) mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Newpassword'; 查询成功,影响 0 行 (0.00 秒)

现在您已将密码更改为新密码,请退出 MySQL。

mysql> quit

再次用 vi 编辑器打开“my.cnf”文件并进行编辑。
这次,删除你刚刚添加的“skip-grant-tables”配置项,然后保存文件。
另外,重启 MySQL 服务。

[root@test-aws-harukainoue etc]# systemctl restart mysqld

现在让我们尝试使用新密码登录 MySQL!

[root@test-aws-harukainoue etc]# mysql -u root -p 输入密码:Newpassword 欢迎使用 MySQL 监视器。命令以 ; 或 \g 结尾。您的 MySQL 连接 ID 为 2 服务器版本:5.7.25 MySQL Community Server (GPL) 版权所有 (c) 2000, 2019,Oracle 和/或其附属公司。保留所有权利。Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。输入“help;”或“\h”获取帮助。输入“\c”清除当前输入语句。mysql>

成功了!我用新密码登录了MySQL!

顺便说一下,进入 MySQL 系统后,可以这样查看 MySQL 版本。

mysql> select version(); +------------+ | version() | +------------+ | 5.7.25 | +------------+ 1 row in set (0.00 sec)

顺便说一下,以下是如何查看 MySQL 服务器版本的方法。
要查看 MySQL 服务器版本,您需要 MySQL 登录密码。

[root@test-aws-harukainoue ~]# mysqladmin -u root -p version 输入密码:Newpassword mysqladmin 版本 8.42 发行版 5.7.25,适用于 x86_64 架构的 Linux 版权所有 (c) 2000, 2019,Oracle 和/或其附属公司。保留所有权利。Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。 服务器版本 5.7.25 协议版本 10 连接通过 UNIX 套接字连接到本地主机 UNIX 套接字 /var/lib/mysql/mysql.sock 运行时间:21 分 2 秒 线程数:1 查询数:2 慢查询数:0 打开数:105 刷新表数:1 打开的表数:98 平均每秒查询数:0.001

最后

我用初始密码无法登录 MySQL 的原因
是,我之前改过密码,然后忘记了。
如果你在本地环境测试,又忘记了 MySQL 密码,可以试试这个方法。我
真的不太懂 MySQL……
我想继续挑战自己,但又不想觉得自己做不好!

每天都在成长,每天都在进步。
我必须每天都更新自己!
感谢您阅读到最后。

如果您觉得这篇文章有用,请点击【点赞】!
13
加载中...
13票,平均分:1.00/113
77,873
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

井上彩花

我是系统解决方案部门的一员。
我作为创始成员之一加入了Beyond,负责四国办公室的日常运营。我没有任何IT行业经验就直接进入了这个行业。
作为教育团队的一员,我负责为应届毕业生、职场新人和现有员工创建课程并开展培训。
我的主要工作是服务器的运维。
最重要的是,我非常关注客户的内容。此外,
我也是网站内容部门和YouTube团队的成员。