合 MySQL 8.0、5.7、5.6、5.5忘记密码重置方法
忘记MySQL的root密码后如何登陆数据库?
在MySQL中,若密码输入错误,则会返回以下信息:
1 2 3 | [root@LHRDB ~]# mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) |
在MySQL中,若密码丢失则无法直接找回,只能通过特殊方式来修改密码。
首先,需要确认是“root@localhost”还是“root@%”密码丢失,因为这是2个不同的用户,若其中一个丢失,那么可以使用另一个用户登录,然后修改密码。
若所有用户均不能登录,那么还有2种特殊方式修改密码,下面分别进行说明。
方法一:使用“--init-file”选项
① 登录MySQL数据库所在的服务器,停止MySQL服务。对于Linux服务器,使用“ps -ef|grep mysql”来查找MySQL服务的进程号,然后手工kill掉MySQL进程。对于Windows服务器,在cmd里输入services.msc打开“服务”,使用“服务”来停止MySQL服务,或在cmd里使用“net stop mysql”停止服务。
② 创建一个文本文件mysql-init.sql,文件内容写入密码修改语句。
MySQL 5.5和5.6版本使用以下语句:
1 2 | set password FOR 'root'@'%' =password('lhr'); set password FOR 'root'@'localhost' =password('lhr'); |
从MySQL 5.7版本开始使用:
1 2 | alter user 'root'@'%' identified by 'lhr'; alter user 'root'@'localhost' identified by 'lhr'; |
③ 使用--init-file参数,启动MySQL实例:
1 | ./mysqld_safe --defaults-file=/etc/my.cnf --init-file=/tmp/mysql-init.sql & |