MySql权限丢失问题解决

参考文章

[mysql] root权限丢失恢复 完全菜鸟教程


今天用root账户登录到mysql后, show databases 命令返回的只有两个表, 然后使用 use database 命令提示我没有权限;
问题如图(我用的是root账户登录的):
image

网上找几个解决权限丢失问题的博客来解决问题

步骤如下:

  • 关闭mysql服务, systemctl stop mysqld

  • 修改mysql配置文件my.cnf(可以通过 mysql --help|grep 'my.cnf' 命令查看** my.cnf** 的路径)在最后一行加入如下代码: skip-grant-tables

  • 保存,启动mysql(systemctl start mysqld)

  • 登录mysql -> mysql -u root -p
    提示输入密码什么都不要输入直接回车, 这样就跳过权限检查直接登录mysql了;

  • use mysql
    (这时候我们需要给root以更新的权限)

  • update user set Update_priv=‘Y’ where user=‘root';
    (然后是设置权限的权限)

  • update user set Grant_priv =’Y’ where user = ‘root'; # 给它最高权限
    flush privileges; # 刷新权限

  • grant all privileges on *.* to root@'localhost' identified by "123" with grant option; # 123是密码

  • flush privileges; # 刷新权限

  • 恢复mysql配置文件, 删除 skip-grant-tables

  • 再次登录, 再次执行 flush privileges;, 完成;

posted @ 2019-10-14 12:26  Laggage  阅读(737)  评论(0编辑  收藏  举报