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

bry*_*edy 15 mysql database-backup

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

mysqldump: Got error: 1142: SELECT,LOCK TABL command denied to user
'root'@'localhost' for table 'cond_instances' when using LOCK TABLES
Run Code Online (Sandbox Code Playgroud)

有人见过吗?我已经看到一些对我的 mysql 和我的 mysqldump 的引用是不同的版本,但是当我运行它们时它们在同一目录中。

我正在运行 MySQL 5.5.8。

sab*_*ujp 20

--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
Run Code Online (Sandbox Code Playgroud)

你想要 --skip-lock-tables


Shl*_*ach 12

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

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

一个5.5 mysqldump的应用程序不应该出口performance_schema摆在首位数据库。

根据我之前的经验,我建议mysqldump你使用的程序是5.1版本。怎么讲?问题:

mysqldump --version
Run Code Online (Sandbox Code Playgroud)

5.1客户端不知道的“未来”的存在performance_schema,并且因此试图倾倒。它不知道它不应该。

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

  • 使用5.5版本问题依旧 (2认同)
  • 如果您像上面的某些用户一样使用 automysqlbackup,则需要在 automysqlbackup.conf 中将 'performance_schema' 添加到 CONFIG_db_exclude 参数 (2认同)

小智 3

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