update user set host='%' where user='root
之后,我失去了我的 MySQL root 用户的一些权限。所以我停止了服务器并用 --skip-grant-tables 启动了它
msqld --skip-grant-tables
我试过了
mysql>update mysql.user set grant_priv = 'Y' where user = 'root';
Query OK, 0 rows affected (0.00 sec)
mysql>FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
这对我不起作用。当我以root身份登录时,仍然看不到MYSQL数据库。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
请帮忙。我试过所有的解决方案仍然无法恢复ROOT的权限,总是得到“0行受影响”的结果。
最佳答案
尝试
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
更新
运行这个命令来检查你当前的权限
SHOW GRANTS FOR CURRENT_USER;
使用直接 SQL DML 语句从 mysql.*
表和 information_schema.*
表中插入/更新/删除是一种不好的做法。
更新 2
你能发布这个命令的结果吗
SELECT (
Host,
Grant_priv,
Super_priv
)
FROM mysql.user
WHERE user = 'root';
所有 _priv
列都应具有值 Y
。 Host
应该是 localhost
。
关于mysql - 启用远程访问后,ROOT 失去权限,授予 ROOT 权限不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19920143/