无法使用 mysqldump 备份 mysql 表。SELECT、LOCK TABL 命令被拒绝用于“cond_instances”

无法使用 mysqldump 备份 mysql 表。SELECT、LOCK TABL 命令被拒绝用于“cond_instances”

我在以 mysql root 用户身份运行时遇到问题mysqldump。当我尝试备份mysql表时,出现此错误:

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user
'root'@'localhost' for table 'cond_instances' when using LOCK TABLES

有人见过吗?我看到有人提到我的 mysql 和 mysqldump 是不同的版本,但是当我运行它们时,它们位于同一目录中。

我正在运行 MySQL 5.5.8。

答案1

将 --skip-add-locks 添加到您的 mysqldump 命令

答案2

--skip-add-locks 不起作用:

# mysqldump -u root -p`cat mysqlRoot.txt` --databases performance_schema --routines --quote-names --skip-add-locks > mysql_performance_schema

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user 'root'@'localhost' for table 'cond_instances' when using LOCK TABLES

你想要 --skip-lock-tables

答案3

(我意识到这已经晚了 8 个月)

这不是锁的问题,提供的解决方案仅仅绕过了真正的问题:

A5.5 mysqldumpperformance_schema应用程序首先不应该导出数据库。

根据我以前的经验,我认为mysqldump你使用的程序是5.1版本。如何辨别?问题:

mysqldump --version

A5.1客户端不知道“未来”的存在performance_schema,因此试图转储它。它不知道它不应该这样做。

尝试找到5.5版本,并将其用于转储,而不添加建议的锁,这样应该可以很好地工作。

答案4

正如 Shlomi Noach 所提到的,performance_schema 不应该被备份。

解决此问题的简单方法是在配置文件中设置以下内容:

CONFIG_db_exclude=( 'performance_schema' 'information_schema' )

相关内容