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

你好!
我是井上,Beyond Shikoku 办公室的波斯猫。

有一天,我尝试在本地计算机上登录 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` 来提取包含“临时密码”的字符串。
从执行结果可以看出,MySQL 的初始密码是字符串“x=B-:.9iaqc?”。
现在让我们登录 MySQL!
登录 MySQL 的命令如下:

mysql -u root -p

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

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

咦???这不对劲……
不管我试多少次,都一直报错,进不去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 真的挺复杂的……
但我想要不断挑战自己,而不是对它抱有消极态度!

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

如果您觉得这篇文章对您有帮助,请点个“赞”!
14
加载中...
14票,平均分:1.00/114
78,487
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

井上彩花

我隶属于系统解决方案部门。
我是Beyond公司四国办公室的创始成员之一。我之前没有任何IT行业经验,直接进入了这个行业。
作为培训团队的一员,我负责为应届毕业生、职场新人和现有员工制定培训课程并开展培训。我的
主要职责是服务器的运维。
我尤其重视客户的内容。此外,
我还隶属于网络内容业务部门和YouTube团队。