我最近入职一家新的公司,碰到这种问题,我自己去查阅资料发现很多方法没有适配到8.0的mysql。
所以我在这里填写一下,以免以后又碰到不会解决。
第一步:关闭MySQL服务
这里是第一个窗口
用管理员进入你安装的MySQL路径下的bin目录,使用 net stop (mysql80) 注意,这里是要填写你的服务名称,可以通过服务去查看名称
第二步:跳过MySQL密码验证
打开第二个窗口(也是管理员进入)
进入命令行(得用管理员进入),进入到bin目录下,在8.0之后不能用
mysqld --skip-grant-tables 跳过。这里我们使用 mysqld -console --skip-grant-tables --shared-memory 跳过。如果没有报错出现一长串的指令就说明可以了。
第三步:无密码方式进入MySQL
打开第三个命令行(也要管理员进入)
mysql -uroot -p
输入之后会显示输入密码直接回车即可进入
第四步:将密码设置为空
输入一下代码修改密码,这里还不能直接设置密码,否则会报错
use mysql;
update user set authentication_string='' where user='root';
quit;
出现下图就说明修改成功
第五步:更改自己的登录密码
关闭前面两个的命令行
在第三个命令行关闭启动服务
net stop mysql(记得自己的服务名字)
net start mysql
接着输入
cd (此处输入自己电脑上MySQL的安装目录)
mysql -u root -p
(此处会显示输入密码,直接回车就好了,第四步我们已经将他置为空了)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';(更改密码)
我们将密码改成root好记
最后在验证一下密码是否已经修改成功