mysql的root怎么样都无法重置密码(操作不当导致)

在/etc/my.cnf 添加了skip-grant-tables  以安全模式免密码登陆时没有问题(mysql的库是在),然后在mysql里面重置了密码后退出,将刚才在/etc/my.cnf的配置去掉后重启mysql服务,用重置了的正确密码一直提示密码不正确。。。后来发现不加skip-grant-tables的配置也可以无密码登陆Mysql,show database;还要丢失mysql的库

wKioL1Z7o8DSI44MAADeqmyMTmM883.png

wKioL1Z7o87S6nX3AABGqklv79E654.png

wKiom1Z7o8bi7H6mAAA6v3rU6bg568.png

wKiom1Z7o-fiiOeLAABijwUguoY891.png

通过忘记密码,修改密码的方法
(1)编辑mysql主配置文件 my.cnf 
# vim /etc/my.cnf 在[mysqld]字段下添加参数 skip-grant 
(2)重启数据库服务 
service mysqld restart 
(3)这样就可以进入数据库不用授权了
# /usr/local/mysql/bin/mysql -uroot 
(4)修改相应用户密码
> use mysql;
> update user set password=password('your password') where user='root'; 
> quit;

wKioL1Z7pILT6PlvAABFSDMk9JA560.png

wKioL1Z7pJLQ-kOyAABBrlM5_7A292.png

原因:把mysql库里面的user表给损坏了,数据丢失了。 解决办法:先把mysql库重命名,然后重新初始化一下。再重新重置一下密码登录就成功了

wKiom1Z7sKTyODldAAAtrY0OQ5o411.png