MySQL忘记密码or重置密码的解决方法

MySQL忘记密码or重置密码的解决方法

MySQL的版本:5.5.X


此例中的mysql采用源码编译,已经将安装位置加入环境变量,并且配置好mysql启动脚本到/etc/init.d/目录下


忘记密码:



解决办法:

(1)先停止mysql数据库

/etc/init.d/mysql stop

无启动脚本:

pkill -9 mysql
killall mysql

(2)打开新的连接窗口,在新的窗口使用mysqld_safe 启动mysql,并添加参数跳过mysql用户登录认证

screen mysqld_safe --skip-grant-tables --skip-networking
(键盘输入 ctrl+a+d)

--skip-gran-tables:跳过mysql用户登录认证

--skip-networking:跳过网络用户认证,只能本地登录(按需要添加此参数)

#使用screen打开一个新窗口,并执行mysqld_safe命令后,退出screen窗口)

(3)进入mysql,修改密码

执行第二步后,可以使用mysql命令直接进入


此时,使用update修改mysql数据库下user表的密码记录数据,使修改后,使用flush privileges刷新权限

update mysql.user set password=password('newmima') where user='root';
flush privileges;


(4)重启mysql,重启后,用新密码登录

pkill mysql
或
/etc/init.d/mysql restart



MySQL的版本5.6.X

密码错误:


密码错误处理过程和5.5.X版本相同


MySQL的版本5.7.5以上

密码错误:


解决方法:

先关闭mysql进程

pkill -9 mysql
或
/etc/init.d/mysqlstop

跳过认证登录:

直接执行mysqld_safe会导致mysql5.7.5以上版本将sock文件锁定而无法登入mysql


因此,将skip-grant-tables直接写入mysql配置文件my.cnf


更改密码:

mysql5.7.5以上user表中已经取消了passwd字段

updatemysql.user set authentication_string=password('newmima') where user='root';
flush privileges;

退出mysql后,重启mysql,在使用新的密码进入ysql

但是进入后,并没有任何权限

需要重新设定用户(root@’localhost’)的密码,才能正常使用

set password for 'root'@'localhost'=paswwdord('newmima');







猜你喜欢

转载自blog.csdn.net/chuxuan909/article/details/70056962