【问题标题】:Error (1142) SELECT command denied on session_variables table with mysqldump错误 (1142) 使用 mysqldump 在 session_variables 表上拒绝 SELECT 命令
【发布时间】:2016-01-21 02:56:33
【问题描述】:

当我尝试运行 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 Community Server (GPL)

mysqldump 版本

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

【问题讨论】:

    标签: mysql mysqldump


    【解决方案1】:

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

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

    【讨论】:

    • 我认为你是对的,但我没有运行这段代码。前一周我注意到 mysql 软件包有补丁。我将六个包升级到5.7.9-1.el7,这解决了这个问题,特别是mysql-community-clientmysql-community-commonmysql-community-libsmysql-community-libs-compatmysql-community-releasemysql-community-server。我不确定为什么会这样,但我很高兴它现在可以正常工作了。
    • 如果你本地的mysql root用户没有密码,运行mysql_upgrade -u root --force
    • 此操作将在需要时升级列。我有很多日期时间列,并且有很多“旧格式的 TIME/TIMESTAMP/DATETIME 列已升级到新格式。”警告。
    猜你喜欢
    • 2012-06-12
    • 2013-01-03
    • 2013-08-27
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 2018-11-13
    相关资源
    最近更新 更多