实验介绍:MySQL的root密码丢失,没法登录。须要重置其root密码mysql
环境介绍:编译安装的MySQLsql
这篇博客介绍的找回 mysql root 密码是 mysql 基于编译安装的,若是是多实例下的mysql root 密码找回参数还有些许的不同(以下)数据库
主要区别在于中止 mysql 服务后的启动命令ide
编译安装的 mysql:mysqld_safe --skip-grant-tables --user=mysql &spa
多实例的 mysql:mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table &命令行
在多实例环境下,须要加一个参数指明须要更改密码的数据库的 my.cnf 文件,在修改完密码后,能够经过 killall 命令将 mysqld 服务杀死,登录时指定 mysql.sock3d
查看 mysql 版本blog
mysql --versionip
中止 mysql 服务get
/etc/init.d/mysqld stop
加入参数启动 mysql 服务
mysqld_safe --skip-grant-tables --user=mysql &
命令行中输入 mysql,便可登录
mysql
执行 mysql 命令,重置 msyql root 密码,并刷新权限
update mysql.user set password=password("123456") where user='root' and host='localhost';
flush privileges;
在执行完权限之后,经过 \q 退出 mysql 命令行。
由于启动时没有经过 mysqld 启动,因此须要执行 shutdown 命令来关闭 mysql 服务
mysqladmin -uroot -p123456 shutdown
启动 mysql 服务
/etc/init.d/mysqld start
经过刚才更改过的密码登录 mysql 服务,密码修改为功
mysql -uroot -p123456
OK,mysql root 密码已经成功重置