好久没用mysql了,今天用的时候发现报1045错误,但是我觉得用户名和密码是输对了的,遂上网查,但是没有好的解决办法,只有重置密码,但是重置过程中遇见了诸多问题,便写下这篇文章,供各位道友参考一二!
解决教程
1.Windows+R,输入cmd,进入dos环境,输入命令:net stop mysql,停止服务器
2.跳转到mysql的安装目录bin下,输入命令:mysqld --skip-grant-tables,跳过密码验证
3.不要关闭这个窗口,另外输入Windows+R,输入cmd,打开一个新DOS窗口,跳转到mysql的安装目录bin下,输入命令:mysql,进入mysql
4.输入命令:use mysql
5.修改密码,注意结尾的";",输入命令:update user set password=password(‘123456’) where user='root';
如果执行后报错ERROR 1054(42S22) Unknown column 'password' in ‘field list’,错误的原因是因为 5.7版本下的mysql数据库下已经没有password这个字段了,则输入命令update user set authentication_string=password(‘123456’) where user='root';
6.最后刷新,输入命令:flush privileges ( 刷新MySQL权限相关的表),我这里由于改的密码跟原来是一样的,所以显示略微有所不同
7.我直接简单粗暴重启的电脑,验证是否能进入mysql,Windows+R,输入cmd,输入命令:mysql -uroot -p,然后输入你的新密码看是否能进入mysql!
如果密码重置成功后,还是报1045错误,那么恭喜你,遇到了我非常郁闷的问题,下面提供解决方案
1.再次执行第一个教程的前4步后,查询plugin字段值,输入命令: select plugin from user where user = 'root';
2.更新plugin字段为mysql默认值,输入命令: update user set plugin='mysql_native_password';
3.然后之后的步骤从第一个教程的第5步开始执行!
注:如果说服务器无法启动,其实不用管,但是也可以这样操作,找到安装mysql目录的data,删除里面的ib_logfile0,ib_logfile1就可以了!