Mysql8.0 忘记密码且找回密码后引起的后遗症

本文档详细介绍了在MySQL8.0版本中,当忘记数据库登录密码时如何进行重置的步骤,包括停止服务、跳过权限表登录、更新用户认证字符串和设置新密码。在密码重置后,出现ERROR1449错误,原因是缺少对'mysql.infoschema'用户的授权。为解决这个问题,需要显式创建并授权该用户。通过创建用户、赋予所有权限以及刷新权限,最终成功授权并能正常连接数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL8.0 版本登录数据库时,发现忘记密码,多方折腾,总结操作步骤如下:

0.关闭正在运行的mysql服务
1. cd 进入MySQL8.0的bin目录
2.打开cmd,以管理员身份运行,输入命令 mysqld -console --skip-grant-tables --shared-memory 跳过密码登录,此cmd不要关
3.新开一个cmd,以管事员身份运行,cd进入bin目录,输入mysql -u root -p,免密登录成功
4.依次输入
        4.1 use mysql
        4.2 update user set authentication_string=’’ where user=‘root’;
        4.3 flush privileges;
        4.4 ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
5.打开新的cmd,mysql -u root -p ,输入新密码即可


至此,密码修改成功且可以链接数据库,但此刻,如果操作了show databases;你会收获一个报错:ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
这个报错大致意思是指没有给mysql.infoschema 用户授权,因此,解决这个错误的办法就是给他授权即可。

8.0往上的版本不支持隐式创建用户,因此,需要显示创建,通过以下3个步骤即可给用户授权

1.创建用户:create user 'mysql.infoschema'@'%' identified by '密码';

2. 授权:grant all privileges on *.* to 'mysql.infoschema'@'%';

3. 刷新授权:flush privileges;

至此,即可使用mysql。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值