绕过本地mysql登录验证改密码
我们知道,一旦忘记mysql用户密码是挺麻烦的一件事。题主用的是免安装的5.7.30mysql,开始因为没有记住默认密码废了很大周折,这里简单记录下
文章最后还有对图形化界面因为如此操作后报错的方案
贴一个免安装板的配置链接 5.7.30-winx64下载和安装; 我是按照这个执行的,但是我将随机生成的初始密码忘记了
要绕过mysql密码验证第一步,先在任务管理器服务右键打开服务 关闭mysq服务
以管理员身份打开cmd,然后进入到你解压的mysql的bin目录下(如果bin目录在D盘 那就是cd /d +你的bin路径 其他盘的更换标红字母即可)
输入 mysqld --skip-grant-tables 然后不要关闭这个窗口(这时候其实是在运行后台服务跳过密码验证)
在按照同样开启cmd的方式再打开一个进入bin目录 用root用户直接免密登录 mysql -u root -p
切换数据库 use mysql 后更改密码 update user set authentication_string = password("000") where user = "root" 这里意思是设置root用户的密码是000
刷新表 flush privileges 提醒,每句命令后记得加英文分号 ; 还有就是下图打马赛克部分是因为我输错字母
最后关闭之前的跳过验证cmd窗口 ,打开mysql服务,尝试用新的密码登录
成功!!
改密码系统报错时也可以用此方法修改密码,这里贴一个其他博主的参考链接 ERROR 1054 (42S22): Unknown column 'password' in 'field list'
然后还没完,哈哈哈,因为好多博主总结的没写这样更改后在图形界面的报错怎么解决,这里我用的是 Navicat
1862 - Your password has expired. To log in you must change it using a client that supports expired passwords.
上图两种报错都在cmd可以用 mysqladmin -u root -p password 重置密码解决
emmm,原理不太清楚,猜测是第一次改密码和图形界面配置冲突。没想到更好的解决方案,希望以后会有吧