常用修复方
- 添加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
继续阅读
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏