参考文章
今天用root账户登录到mysql后, show databases
命令返回的只有两个表, 然后使用 use database 命令提示我没有权限;
问题如图(我用的是root账户登录的):
网上找几个解决权限丢失问题的博客来解决问题
步骤如下:
关闭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;
, 完成;