MySql权限丢失问题解决
参考文章
今天用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;, 完成;
浙公网安备 33010602011771号