mysql:在information_schema上访问被拒绝

时间:2014-06-02 07:30:35

标签: mysql information-schema

当我为现有用户创建新用户或授予权限时,我收到了此错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在所有表上授予权限,除了information_schema,在此表上我获得了访问被拒绝错误。 我怎么解决?转储所有数据库,删除所有数据库,然后从转储恢复?

3 个答案:

答案 0 :(得分:3)

MySQL documentation说:

  

...您只能读取表的内容,不能对它们执行INSERT,UPDATE或DELETE操作。

答案 1 :(得分:3)

没有必要授予对这些表的访问权限。所有用户都已有权访问。

“每个MySQL用户都有权访问这些表,但只能看到表中与用户具有适当访问权限的对象相对应的行。在某些情况下(例如,ROUTINE_DEFINITION列中的INFORMATION_SCHEMA.ROUTINES表),权限不足的用户将看到NULL。“

https://bugs.mysql.com/bug.php?id=45430

http://dev.mysql.com/doc/refman/5.1/en/information-schema.html

答案 2 :(得分:1)

请注意,如果名称information_schema中有拼写错误,您还会收到denied to user条消息。这有时令人困惑。

select * from bogusSchema.bogusTable;

错误是

Error Code: 1142. SELECT command denied to user 'user123'@'localhost' for table 'bogusTable'

我正在使用InfoBright的{​​{1}}变体。不确定MySQL的其他变体/版本是否存在同样的问题。