为了账号安全,请及时绑定邮箱和手机立即绑定

运行MySQLDump而不锁定表

运行MySQLDump而不锁定表

芜湖不芜 2019-09-18 13:28:24
我想将一个实时生产数据库复制到我的本地开发数据库中。有没有办法在不锁定生产数据库的情况下执行此操作?我目前正在使用:mysqldump -u root --password=xxx -h xxx my_db1 | mysql -u root --password=xxx -h localhost my_db1但它在运行时锁定每个表。
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

该--lock-tables=false选项是否有效?


根据手册页,如果要转储InnoDB表,可以使用以下--single-transaction选项:


--lock-tables, -l


Lock all tables before dumping them. The tables are locked with READ

LOCAL to allow concurrent inserts in the case of MyISAM tables. For

transactional tables such as InnoDB and BDB, --single-transaction is

a much better option, because it does not need to lock the tables at

all.

对于innodb DB:


mysqldump --single-transaction=TRUE -u username -p DB


查看完整回答
反对 回复 2019-09-18
?
白板的微信

TA贡献1883条经验 获得超3个赞

这已经太晚了,但对搜索主题的任何人都有好处。如果您不是innoDB,并且在转储时不担心锁定,只需使用以下选项:


--lock-tables=false


查看完整回答
反对 回复 2019-09-18
?
Helenr

TA贡献1780条经验 获得超3个赞

答案取决于您使用的存储引擎。理想的情况是你使用的是InnoDB。在这种情况下,您可以使用该--single-transaction标志,该标志将在转储开始时为您提供数据库的连贯快照。


查看完整回答
反对 回复 2019-09-18
  • 3 回答
  • 0 关注
  • 3321 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信