无法用mysqldump备份mysql表。 SELECT,LOCK TABL命令拒绝'cond_instances'

我有麻烦运行mysqldump作为MySQL的根用户。 当我尝试备份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。

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

–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

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

这不是一个锁的问题,提供的解决scheme只是绕过真正的问题:

5.5 mysqldump应用程序不应该首先导出performance_schema数据库。

基于我以前的经验,我build议您使用的mysqldump程序是一个5.1版本。 如何判断? 问题:

 mysqldump --version 

5.1客户端不知道performance_schema的“未来派”存在,因此试图转储它。 它不知道它不应该。

尝试并find5.5版本,并使用它进行转储,而不添加build议的锁,这应该工作。

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

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

 CONFIG_db_exclude=( 'performance_schema' 'information_schema' )