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
继续阅读
shunzi
  • 本文由 发表于 2017-11-1720:22:25
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
Mysqld_multi Stop Bug BLOG

Mysqld_multi Stop Bug

最近在做mysqld_multi管理多实例的时候,发现stop不了节点 这是什么原因呢? 多实例相关配置如下: mysqld = /usr/local/mysql/bin/mysqld_safe my...
匿名

发表评论

匿名网友 填写信息

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