MySQL忘记密码修复

  • A+
所属分类:Blog MySQL

常用修复方

  • 添加skip-grant-tables到/etc/my.cnf配置文件
    [mysqld]
    skip-grant-tables
    server mysqld restart #重启mysql进程
    mysql -uroot -p #登录数据库不需要密码
  • 修改密码

    update mysql.user set password=password('123456') where User="root" and Host="localhost";
    flush privileges; #刷新系统授权表
    grant all on *.* to 'root'@'localhost' identified by '123456' with grant option;
  • 去掉skip-grant-tables选项
    server mysqld restart #重启mysql进程

    密码修改完毕

特殊恢复方法

  • 1,首先把mysql数据库下的user表的datafile复制到另外一个能登录的数据库里
    cp /data/mysql/mysql3306/data/mysql/user.* /data/mysql/mysql3306/data/ss/.
  • 2,修改权限,然后登录数据库ss,直接update数据库ss的表user
    select Host,User,Password from ss.user;
    update ss.user set Password=password('123123123') where user='repl_user' and host='%'; --新密码
    update ss.user set Password='*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' where user='repl_user' and host='%'; --源密码
  • 3,然后把修改玩的datafile恢复到默认mysql库下
    cp /data/mysql/mysql3306/data/ss/user.* /data/mysql/mysql3306/data/mysql/user.*
  • 4,修改相应权限后,在OS重新加载配置
    kill -1 `pidof mysqld`
  • 5,现在就可以用行的密码登录数据库了
    mysql -uroot -p123123123

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: