我有麻烦运行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' )