这样就能解决问题!更改您忘记的 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