MySQL5.7忘记root密码-手动修改密码教程
MySQL 5.7相对于MySQL 5.6在应用上发生了一些新的变化,这里就MySQL5.7忘记root密码情况下,手动去修改root密码做一些介绍。
操作系统:Windows10
数据库版本:MySQL 5.7.20
1.Windows10命令行下,进入MySQL数据库输入错误密码报错
MySQL安装路径已经添加到系统环境变量中的情况,直接输入命令:
mysql - u root -p
再输入密码错误时会报错:
2.先停止MySQL服务
直接输入命令:
net stop MySQL57
这里注意检查你的MySQL服务名词是否是MySQL57,否则会报服务名无效错误哦。可以去系统服务里面查看,其实可以在系统服务里右键直接停止服务,我们这里为了全程使用命令行模式,就往下继续啦~
很奇怪的是,服务名没错,还是不能启动MySQL服务!
提示发生系统错误 5;拒绝访问!
其实切换到管理员模式就可以启动了。
注意:必须以管理员身份运行MySQL服务,否则会提示:发生系统错误 5;拒绝访问!
3.修改参数文件跳过密码验证
有人建议使用mysqld –skip-grant-tables启动MySQL服务,结果可能出现报错:
解决方法是:
找到MySQL安装路径下的my.ini配置文件文件在[mysqld]节点下方添加:
skip-grant-tables = true
有些没找到my.ini配置文件,因为my.ini配置文件默认和安装目录不在一起,可以全局搜一下。
我的配置文件的路径是C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
默认安装路径是:C:\Program Files\MySQL\MySQL Server 5.7\bin
保存文件后,需要重启服务:
net start MySQL57
4.修改密码
用户登录,直接输入:
mysql -u root
直接回车就可以进入到数据库了。
再执行命令修改密码:
update mysql.user set password = password('123456') where user='root';
这里注意一下:
在MySQL5.7里面没有“password”这个字段,使用的是“authentication_string”字段,直接执行命令
update mysql.user set authentication_string = password('123456') where user='root';
可以看到执行成功了,密码修改为123456。
还需要执行筛选权限的命令:flush privileges;
5.验证使用修改后的密码登录数据库
在验证新密码是否成功之前,可以先将配置文件中新添加的跳过密码验证的参数去除,然后在重启MySQL服务。
同样可以使用命令来验证,不使用密码是能否登录数据库。
最后使用新密码来登录数据库,可以成功。
到这里纠结束了,希望对一些遇到类似问题的人有帮助。