当试图对表进行删除操作时,mysql会报告以下错误:
错误代码1227:访问被拒绝; 你需要这个操作的SUPER特权。
但是,我的用户拥有该模式中所有表的权限:
授予
myschema所有特权。*'my_admin'@'%'
为什么要求SUPER特权删除?
你确定你没有login作为一些较less特权的用户吗? 您获得您login的用户的权限,而不是所有您可以login的用户。
如果[email protected]的权限less于myadmin@%并且您从[email protected]开始login,则会获得前者的权限。
从一个MySQL客户端来看看你是什么“当前用户”,然后SHOW GRANTS FOR该用户的SHOW GRANTS FOR 。
我假设你在执行GRANT之后做了FLUSH PRIVILEGES 。
我有同样的问题。 这是一个不完整的安装造成的。 我无法从root访问命令行运行mysql,因为我没有设置root密码。 所以我重新安装了MySQL(不需要) – 哦,是啊备份我的表首先使用mysqldump:mysqldump – 所有数据库> huge_dump.dump(这不要求我的密码)这里的关键 – 运行mysql_secure_installation脚本:
mysql_secure_installation
Bla Bla Bla – – – input根目前的密码(input为none); HIT ENTER,因为你还没有设置root密码
设置root密码? [Y / N] Y <—说是! 新密码:kick_me_hard重新input新密码:kick_me_hard密码更新成功! 重新加载特权表…。 。 。成功!
现在您可以使用phpMyAdmin或命令行login:
mysql -u root -p
input密码:kick_me_hard键入'help' 或'\ h'寻求帮助bla bla bla
MySQL的>
自从你修好以后,你是最酷的家伙(gal)。 除非你是唯一一个 – 那么你仍然是最酷的!
看一下mysql.*表。 有可能在该表上设置了一些删除访问权限的权限。 我知道MySQL的权限通常不会这样工作,但值得一看。
另外,表的文件本身是否具有正确的文件系统权限? 如果MySQL无法写入,它可能会混淆权限子系统的错误。
另一种可能性是:也许有一个触发器(如删除事件)对该表。 如果您删除该表上的行,它将发出触发器,但触发器需要执行SUPER特权。