实验介绍:MySQL的root密码丢失,无法登陆。需要重置其root密码

环境介绍:编译安装的MySQL

 

这篇博客介绍的找回 mysql root 密码是 mysql 基于编译安装的,如果是多实例下的mysql root 密码找回参数还有些许的不一样(如下)

主要区别在于停止 mysql 服务后的启动命令

编译安装的 mysql:mysqld_safe --skip-grant-tables --user=mysql &

多实例的 mysql:mysqld_safe --defaults-file=/data/3306/my.cnf  --skip-grant-table &

在多实例环境下,需要加一个参数指明需要更改密码的数据库的 my.cnf 文件,在修改完密码后,可以通过 killall 命令将 mysqld 服务杀死,登陆时指定 mysql.sock

 

查看 mysql 版本

mysql --version

p_w_picpath

 

停止 mysql 服务

/etc/init.d/mysqld stop

p_w_picpath

 

加入参数启动 mysql 服务

mysqld_safe --skip-grant-tables --user=mysql &

找回MySQL的root密码_第1张图片

 

命令行中输入 mysql,即可登陆

mysql

找回MySQL的root密码_第2张图片

 

执行 mysql 命令,重置 msyql root 密码,并刷新权限

update mysql.user set password=password("123456") where user='root' and host='localhost';

flush privileges;

找回MySQL的root密码_第3张图片

 

在执行完权限以后,通过 \q 退出 mysql 命令行。

因为启动时没有通过 mysqld 启动,所以需要执行 shutdown 命令来关闭 mysql 服务

mysqladmin -uroot -p123456 shutdown      

p_w_picpath

 

启动 mysql 服务

/etc/init.d/mysqld start

p_w_picpath

 

通过刚才更改过的密码登陆 mysql 服务,密码修改成功

mysql -uroot -p123456      

找回MySQL的root密码_第4张图片

 

OK,mysql root 密码已经成功重置