mysql8.0.20 下重置密码时各种报错以及解决方法

前言

因为使用的是mysql8.0的版本,所以一般的直接跳过验证阶段的方法:mysqld skip-grant-tables(只能在mysql8.0一下版本才能生效)没有办法执行,当根据网上的解决方法关闭服务后运行mysqld --shared-memory --skip-grant-tables也无法正常执行,产生一堆报错。但经过各种寻找资料,终于还是把问题解决了,博主尝试跳过密码认证的报错如下:尝试跳过报错希望可以帮助和我一样的小伙伴。

报错排查

排查过程还是主要根据错误日志解决,请小伙伴根据自己的实际情况确定解决方案

第一

首先最容易解决的报错是:
2020-10-12T02:59:15.651181Z 0 [ERROR] [MY-013276] [Server] Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server 8.0\data\' (OS errno: 2 - No such file or directory)

报错是指当前目录下没有存放数据的data文件夹,于是只需要在mysql8.0的C:\Program Files\MySQL\MySQL Server 8.0目录下创建一个data文件夹即可。

第二

观察以下报错:
2020-10-12T02:59:15.650662Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test
2020-10-12T02:59:15.650917Z 0 [Warning] [MY-010091] [Server] Can't create test file C:\Program Files\MySQL\MySQL Server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test

可见,两个报错都是由于无法创建一个叫mysqld_tmp_file_case_insensitive_test.lower-test的文件而产生的,因为windows宇Linux的下的命令行差距有点大,所以我采用的是通过管理员命令行进行操作,具体解决方案如下:

  1. 右键win的标志打开管理员命令行终端

  2. 打开到mysql安装目录在这里插入图片描述

  3. 运行代码

    ./mysqld --initialize --lower-case-table-names=1
    //注意没有.exe的后缀,下面是错的
    ./mysqld.exe --initialize --lower-case-table-names=1
    

当然保险起见,我还是贴上图片在这里插入图片描述
当没有任何报错就说明运行成功了
此时你成功的创建了mysqld_tmp_file_case_insensitive_test.lower-test的文件

报错解决完后,按照基本流程走

依次执行以下代码:
//停止mysql服务
PS C:\Program Files\MySQL Server 8.0\bin> net stop mysql
//进行密码跳过认证
PS C:\Program Files\MySQL Server 8.0\bin> mysqld --shared-memory --skip-grant-tables
//此时,这个终端窗口会卡住,无法输入命令,这就说明你成功了


//打开新的终端窗口,快捷键:win+r,输入cmd
C:\Users\15395>mysqld --shared-memory --skip-grant-tables
//直接登入MySQL
C:\Users\15395>mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

//刷新权限
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

//重新设置密码,本人设置的123
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123'
    -> ;
Query OK, 0 rows affected (0.04 sec)

//推出MySQL
mysql> QUIT
Bye

//登录mysql
C:\Users\15395>MYSQL -U ROOT -P
Enter password: ***
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
//登录成功

小结

  1. 遇到报错还是要根据自己的具体问题具体分析
  2. 第一个报错(缺少data文件夹)好像有时data目录存在时也会有这个报错,网上说可以删除重建一个空的data文件夹,
  3. 我数据库密码都给了,要个点赞不过分吧
  • 34
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖半仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值