【问题标题】:After enable remote access, ROOT lost privileges and grant privilege to ROOT doesn't work开启远程访问后,ROOT失去权限,授予ROOT权限不起作用
【发布时间】:2013-11-12 14:45:53
【问题描述】:

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行受影响”的结果。

【问题讨论】:

    标签: mysql xampp


    【解决方案1】:

    试试

    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 列的值都应为YHost 应该是 localhost

    【讨论】:

    • 不起作用,我得到了 ERROR 1045 (28000): Access denied for user ''@'localhost' (using password: NO) 。我忘了提到我在启用远程访问@Eternal-Learner 之后失去了特权
    • 您是从--skip-grant-tables 开始的,对吗?有root 用户吗?运行select user,host from mysql.user where user = 'root' 进行检查。如果没有,则需要先创建用户
    • 是的,有一个root用户,主机是linux。但是我必须正常启动服务器才能运行SHOW GRANTS FOR CURRENT_USER; 或任何GRANT 子句,否则我会得到ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement。无论如何,我以ROOT身份登录并检查了权限,Grants for @localhostGRANT USAGE ON *.* TO ''@'localhost'@Eternal-Learner
    • 查看我的更新答案。当您将host 设置为% 时,它不包括localhost。如果您将host 改回localhost,大多数情况下您的问题都会消失。要包括打扰localhostremote 访问权限,您应该在mysql.user 表中有两个条目。
    • 哦,直到您明确指出,我才意识到host must be localhost 的事情。我已通过添加新的root 用户并将主机设置为localhost 来解决此问题。非常感谢你的帮助。 @Eternal-Learner
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2012-04-29
    • 2012-03-23
    • 2013-06-25
    • 2012-01-19
    • 1970-01-01
    相关资源
    最近更新 更多