记MySQL忘记root密码和新建用户

记MySQL忘记root密码和新建用户

`
例如:第一章 MySQL 忘记密码



前言

提示:这里可以添加本文要记录的大概内容:

好久不用MySQL, 忘记root的登录密码了,虽然navicat可以保存密码, 但是不是明文密码,于是我就想重置一下root密码。
重置完密码,紧接着添加用户并授权。


提示:以下是本篇文章正文内容,下面案例可供参考

一、重置密码

1.关闭mysql服务器

我的MySQL服务名是mysql8, 故使用如下command
在这里插入图片描述

2.跳过密码验证启动mysql

8.0版本以前可以用

mysqld --skip-grant-tables
8.0版本用以下命令, 我的是8.0, 故用下面的命令

mysqld --console --skip-grant-tables --shared-memory

在这里插入图片描述

3.直接以无密码的方式连接

再重新以管理员身份打开cmd, 可以到mysql 安装路径下的bin 目录,也可以在任意路径执行下面的命令。

mysql -uroot -p 直接回车就可以登录了
在这里插入图片描述

4.修改当前用户的密码

真正存储用户表的密码字段存储的肯定是密文,只有用户自己知道明文是什么,其他人都不知道,这样更加安全,密码对比也只能密文对比

方法1(如不行请使用方法2)

update mysql.user.set password=password(123) where user=“root” and host=“localhost”;
方法2

update user set authentication_string=‘’ where user=‘root’; # 将密码重置为空, 也可以设置成其他密码, 如‘123456’

下面是我修改密码遇到的问题,最终使用的方法2,成功改密码,刚开始我改成了空,后来我用同样的方法改成了123456.
在这里插入图片描述

二、重置密码后遇到的问题

1.重置密码后,mysql8 启动后,打开navicat, 用root 账号和密码登录报错

在这里插入图片描述

在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/facec1de13b647e1a114998f3850fbbc.png

用户名和密码没有问题,就是一直报错。我通过命令行登录,也是同样的问题
在这里插入图片描述
https://blog.csdn.net/m0_48958478/article/details/121704034 参阅这个文章:
原因:
因为MySQL8的特性,关闭了root用户的登陆,官网新版本里有介绍

2.解决方案

2.1每次登录前,先以管理员身份执行下面的命令(默认mysql服务器开机自启动,所以需要先stop)

net stop mysql8
mysqld --console --skip-grant-tables --shared-memory

然后在navicat上用root 账号登录,或者再以管理员身份打开一个cmd通过命令行用root账号登录,可以登录成功.

2.2新建普通用户,并授权所有的权限给普通用户

因为它是关闭了root 用户权限,所以我就想通过新建用户并授权的方式试一下,看能不能解决这个问题。
我通过方法1,用root 用户登录进去,然后执行如下语句
创建用户并授权:
在这里插入图片描述
在创建用户的时候遇到了一个报错:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement,执行 flush privileges; 在这里插入图片描述
然后再执行创建语句,创建成功。授权之后,我关闭所有cmd, 然后手动启动mysql8服务器,

在这里插入图片描述

然后用用户test1登录,登录成功!
在这里插入图片描述
在这里插入图片描述

总结

每一次遇到问题都是一个学习积累的过程,加油!!!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值