恢复 mysql 中 root 的权限
晚上干活一时疏忽把 root
的权限收回了
1 | REVOKE ALL PRIVILEGES ON * . * FROM 'root'@'localhost'; |
上面命令带来的后果就是所有的操作都被拒绝,执行
show databases
只有 information_schema
显示。
1 | mysql> use mysql; |
网上找到的解决方法均不适用于当前情况,特此记录。
第一步:使用
--skip-grant-table
跳过密码登录
service mysqld stop
停止 mysql 服务mysqld_safe --skip-grant-table
使用安全模式跳过密码- 新开一个 terminal 输入
mysql -u root
登录
此时执行 show databases
应该能看到所有可用的数据库。
第二步:重新授予权限
- 执行
flush privileges
,是的没错,要先刷新权限,否则会得到The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
的错误 - 授予权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION
重启 mysql 后即可正常使用。