mysqldump 存储过程无需锁定表

mysqldump 存储过程无需锁定表

我正在尝试创建 mysql 数据库存储过程和表“shapes”的转储,而不锁定任何行。

mysqldump -uread_only -p --routines -d --skip-add-locks the_db_name

这不起作用,因为我没有锁定表的权限。我不需要这样做,因为我不想复制数据本身。存储过程每年只会更改一次,所以如果我遇到冲突,那我就太倒霉了!

非常感谢。

答案1

mysqldump --skip-lock-tables 

掌面 就在顶部手册页

答案2

请记住,您必须这样做,因为存储过程 (SP) 位于 mysql.proc 中。这是一个 MyISAM 表。针对 mysql.proc 的 SELECT 会创建一个隐式锁。其他数据库可能有需要更改的 SP(可能性很小,但仍然有可能)。

为了确保任何 SP 的属性都不会被更改,将对 mysql.proc 发出显式锁定。--skip-lock-tables只要您知道没有其他 SP 被更改,就可以这样做。

相关内容