错误(1142)使用mysqldump在session_variables表上拒绝SELECT命令

kas*_*kas 18 mysql 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)

我找到了一些关于添加--set-gtid-purged=OFF类似错误的内容.但我没有mysqldump在较旧的MySQL数据库上运行MySQL 5.6版本.但是,当我尝试它时,我得到一个新的,但类似的错误:

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

我不确定为什么用户需要访问session_variables表,我认为是这样information_schema.SESSION_VARIABLES,因为这篇SO帖子说以下权限就足够了.

dump @ 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'
Run Code Online (Sandbox Code Playgroud)

发生了什么,我如何使mysqldump工作?

这是我的一些系统信息

MySQL版本

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

mysqldump版本

Ver 10.13 Distrib 5.7.8-rc,适用于Linux(x86_64)

小智 34

这是mysql服务器升级的结果.跑

# mysql_upgrade -u root -p --force
# systemctl restart mysqld
Run Code Online (Sandbox Code Playgroud)