【发布时间】:2010-12-15 02:38:26
【问题描述】:
我不小心删除了我的 MySQL root 用户的一些权限,包括更改表的能力。有什么方法可以将此用户恢复到其原始状态(具有所有权限)?
UPDATE mysql.user SET Grant_priv = 'Y', Super_priv = 'Y' WHERE User = 'root';
# MySQL returned an empty result set (i.e. zero rows).
FLUSH PRIVILEGES ;
# MySQL returned an empty result set (i.e. zero rows).
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
GRANT ALL ON *.* TO 'root'@'localhost'
【问题讨论】:
-
第二个错误看起来像是密码问题。假设您已经拥有“root”@“localhost”帐户,这可能是我的错。使用 --skip-grant-tables 重新运行 mysqld,并且:“DROP USER 'root'@'localhost'; GRANT ALL PRIVILEGES ON . TO 'root'@'%';”反而?找出您应该授予访问权限的帐户的最佳方法是运行“SELECT User, Host FROM mysql.user WHERE User='root';”...这将为您提供应该在 @ 之后使用的主机名GRANT 命令中的符号。
-
当主题不是离题时,模组将主题标记为离题是一种不好的形式,除非可能有另一个 Stack Exchange 站点更适合该主题,在这种情况下应该识别它. (对模组感到羞耻。)这可能会发生在这里:dba.stackexchange.com
-
^ 同意,我投票决定重新开放。 如果它由于 DBA 站点的存在而被关闭,至少应该提到这一点并且 OP 指向那里。 (或可能在此处作为另一个问题的副本关闭)
标签: mysql privileges mysql-error-1045