一、前言
很久没使用mysql,由于项目需要配置了一遍发现以前正常使用的mysql账号密码无法登陆了,于是网上一顿操作陷入了真真假假中的尝试,一个小时的忙活终于搞定了。由于搭建的环境为win10,mysql版本为mysql-8.0.20-winx64,以下运用都是在这个环境中适用。
二、差异性
在遗忘的密码的情况下进行密码修改,常规的操作基本是越权,使用命令修改root的密码,在8.0版本中mysql修改了这2个操作的命令。
越权命令:旧的命令为mysqld –skip-grant-tables,新的命令为mysqld --console --skip-grant-tables --shared-memory。
密码字段:旧的字段为password,新的字段为authentication_string。
三、操作
1、暂停mysql服务
通过管理员权限打开cmd,输入net mysql stop命令。
打开电脑服务,找到MYSQL服务停止服务。
打开进程找到mysql结束进程。
以上三种操作都是可以暂停mysql服务。
2、越权操作
打开cmd进入到mysql文件的bin目录,执行 mysqld --console --skip-grant-tables --shared-memory。
3、修改root密码
打开新的cmd,输入mysql直接进入mysql,输入修改root账号update user set authentication_string='' where user='root';然后退出mysql。关闭越权命令的cmd,在服务中启动mysql服务。打开cmd进入到mysql文件的bin目录,进行登录mysql操作,mysql -uroot -p,此时不用输入密码直接回车,root的密码为空。进入mysql后输入ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root';。密码就会被修改成root,退出再次进入mysql就可以正常使用了。