当我尝试运行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表,我认为这是information_schema.SESSION_VARIABLES
,因为this SO post表示以下权限就足够了。
为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'
发生了什么以及如何让mysqldump工作?
这是我的一些系统信息
MySQL版本
服务器版本:5.7.8-rc MySQL社区服务器(GPL)
mysqldump版
Ver 10.13 Distrib 5.7.8-rc,适用于Linux(x86_64)
答案 0 :(得分:34)
这是mysql服务器升级的结果。 运行
# mysql_upgrade -u root -p --force
# systemctl restart mysqld