错误 (1142) SELECT 命令在 session_variables table 上被 mysqldump 拒绝

Error (1142) SELECT command denied on session_variables table with mysqldump

当我尝试 运行 mysqldump -u dump -p myschema > dumpfile.sql 时,我收到此错误消息:

mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'gtid\_mode'': SELECT command denied to user 'dump'@'localhost' for table 'session_variables' (1142)

我发现 something 关于添加 --set-gtid-purged=OFF 的类似错误。但我不会 运行 在较旧的 MySQL 数据库上使用 MySQL 5.6 版本的 mysqldump。然而,当我尝试它时,我得到了一个新的但类似的错误:

mysqldump: Couldn't execute 'SHOW VARIABLES LIKE 'ndbinfo\_version'': SELECT command denied to user 'dump'@'localhost' for table 'session_variables' (1142)

我不确定为什么用户需要访问 session_variables table,我认为是 information_schema.SESSION_VARIABLES,因为 this SO post 说以下权限是足够了。

转储@localhost

 GRANT USAGE ON *.* TO 'dump'@'localhost'
 GRANT SELECT, LOCK TABLES ON mysql.* TO 'dump'@'localhost'
 GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON myschema.* TO  'dump'@'localhost'

这是怎么回事,我该如何使 mysqldump 工作?

这是我的一些系统信息

MySQL版本

服务器版本:5.7.8-rc MySQL 社区服务器 (GPL)

mysqldump 版本

版本 10.13 分发 5.7.8-rc,用于 Linux (x86_64)

这是 mysql 服务器升级的结果。 运行

# mysql_upgrade -u root -p --force
# systemctl restart mysqld