忘记密码解决方案"/>
mysql数据库忘记密码解决方案
步骤一.停止mysql服务
以管理员身份运行cmd–>输入命令 net stop mysql的服务名
步骤二.设置无验证方式启动mysql服务
mysql版本为8.0以下,输入mysqld --skip-grant-tables
mysql版本为8.0以上,输入mysqld --console --skip-grant-tables --shared-memory
看到光标一直闪烁就成功了,进行步骤三
注意:如果遇到mysqld: Can’t change dir to ‘C:\Program Files\MySQL\MySQL Server 8.0\data’ (OS errno 2 - No such file or directory)错误
解决方案:勾选显示隐藏的项目,找到ProgramData文件夹,在C:\ProgramData\MySQL\MySQL Server 8.0路径下找到my.ini文件,复制粘贴到C:\Program Files\MySQL\MySQL Server 8.0目录下即可
复制粘贴完毕后,重新输入mysqld --console --skip-grant-tables --shared-memory,看到此信息且光标闪烁问题就解决了
步骤三.无验证登陆数据库+修改密码
重新打开一个cmd窗口,输入mysql,敲回车就可以成功登陆mysql了
接下来修改密码
————如果mysql版本为5.7以下,有两种SQL语句都可以修改密码,任选其一即可
用户名一般为root,主机名为localhost
USE mysql;
方式一
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
方式二
SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
————如果mysql版本为5.7以上、8.0以下(如果此方法没成功,就用8.0以上的方法继续),user表已经没有password这个字段了,password字段改成了 authentication_string,所以要执行的SQL语句为
USE mysql;
UPDATE user set authentication_string=PASSWORD('新密码') WHERE user='用户名';
flush privileges;
————如果mysql版本为8.0以上,mysql移除了PASSWORD()加密函数,不知道用的是什么鬼加密算法,所以这里是将authentication_string先置空
use mysql;
update user set authentication_string='' where user='用户名';
步骤四 关闭cmd窗口及进程
关闭两个cmd窗口,然后启动任务管理器(ctrl+alt+delete),手动结束进程中的mysqld.exe,如果没有找到mysqld则直接进入步骤五
步骤五 启动服务,使用新密码登陆mysql
如果mysql版本为8.0以下,以管理员身份运行cmd–>输入命令 net start mysql的服务名,然后输入命令 mysql -uroot -p新密码,按回车,登陆成功,所有步骤结束
如果mysql版本为8.0以上,以管理员身份运行cmd–>输入命令 net start mysql的服务名,启动服务后,因为密码之前置空了,所以这里输入命令 mysql -uroot -p 回车两次
下面开始修改密码,输入以下命令即可
alter user '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; flush privileges;
此时密码已经修改完毕,登陆mysql
可以看到成功登陆上mysql了,到这里终于结束了
总结:排除了各种错误终于整理完毕,推荐下载5.5-5.7版本之间的MySQL,
除了这种修改用户密码方式,还可以选择先创建一个用户,然后进行操作之类的,可能要方便一些
更多推荐
mysql数据库忘记密码解决方案
发布评论