打算用mysql写实验报告,结果发现自己忘记密码了,找了大半个晚上基本上网上的坑全部踩完了,现在记录一下。

注意下面的任何操作都最好在管理员权限下操作

一:

首先当然是停止一下你的mysql服务,但是很多人用net start mysql的时候就会报错了,原因有两个:

1:是你没有用管理员权限打开(可能性小)

2:MySQL服务器名称不正确(可能性很大)

Win+R输入services.msc,找到mysql服务名称,你就会发现你的名称叫mysql80

好的,然后现在运行

net start mysql80

把mysql服务器关掉是为了之后运行免密登录的操作

二:

因为mysql8.0之后–skip-grant-tables无效,需要在mysql的bin目录中使用mysqld --console --skip-grant-tables --shared-memory,

什么?找不到mysql的bin目录?还是Win+R输入services.msc,双击mysql80,然后你就可以在常规里面看见他的路径

 好的,那么现在找到路径之后,运行mysqld --console --skip-grant-tables --shared-memory,我就会出现下面的报错:[ERROR] [MY-013276] [Server] Failed to set datadir to ‘F:\Mysql\mysql-8.0.19-winx64\data\‘ (OS er

 这是说明你没有成功执行,你需要执行下面的操作:

mysqld --initialize --user=mysql --console

mysqld -install

然后出现下面的界面就说明可以了

(但是我运行完这个命令之后,它一直不退出,如果等太久的话你可以直接做第三步,不一定要等他执行完。 )

参考:https://blog.csdn.net/hanhanwanghaha/article/details/105599321

新开一个cmd,然后直接mysql -uroot -p就可以实现免密登录了,但是我们现在还需要修改一下密码

(1)将 root 用户 authentication_string 字段内存清空

use mysql; 
update user set authentication_string='' where user='root';

注意,运行完命令成功之后之后,这个命令行窗口不要关闭

(2)设置 root 用户的密码

use mysql; 
ALTER user 'root'@'localhost' IDENTIFIED BY '你的新密码';

等显示 Query OK, 0 rows affected 就表示密码设置成功了。

(3)验证

我们可以验证一下刚才设置的密码,关闭当前所有命令行窗口。新打开一个命令行,输入第一步的命令回车,将刚才设置的密码输入进去,回车,看看是不是成功进入 MySQL 数据库了。

成功之后就可以删除之前的命令行了

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐