我正在尝试创建 mysql 数据库存储过程和表“shapes”的转储,而不锁定任何行。
mysqldump -uread_only -p --routines -d --skip-add-locks the_db_name
这不起作用,因为我没有锁定表的权限。我不需要这样做,因为我不想复制数据本身。存储过程每年只会更改一次,所以如果我遇到冲突,那我就太倒霉了!
非常感谢。
答案1
答案2
请记住,您必须这样做,因为存储过程 (SP) 位于 mysql.proc 中。这是一个 MyISAM 表。针对 mysql.proc 的 SELECT 会创建一个隐式锁。其他数据库可能有需要更改的 SP(可能性很小,但仍然有可能)。
为了确保任何 SP 的属性都不会被更改,将对 mysql.proc 发出显式锁定。--skip-lock-tables
只要您知道没有其他 SP 被更改,就可以这样做。