q3256 发表于 2018-9-28 11:26:32

找回MySQL的root密码

  实验介绍: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

  停止 mysql 服务
  /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 密码已经成功重置

页: [1]
查看完整版本: 找回MySQL的root密码