我想把现场制作数据库复制到我当地的开发数据库中.有没有办法在不锁定生产数据库的情况下执行此操作?

我目前正在使用:

mysqldump -u root --password=xxx -h xxx my_db1 | mysql -u root --password=xxx -h localhost my_db1

但它会在运行时锁定每张桌子.

推荐答案

--lock-tables=false选项有效吗?

根据man page,如果要转储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

Mysql相关问答推荐

使用MySQL工作台导出具有数据的数据库表并导入到其字段具有不同数据类型的同一表中

为什么我的带有索引字段和非索引字段的 Select 有时需要很长时间

我是否需要在 N+1 列上建立索引,才能有效地在 N 列上执行 SELECT,并按其他列排序?

从 NextJS/Prisma 添加用户 ID (FK) 到 MySQL 表

MySQL match against给出奇怪的结果

如果存在N个特殊行,如何 Select 它们,其余的必须填充常规行,总行数不能超过MySQL中的X行?

try 在 .map 中使用 Favorite 选项卡进行react .我无法更改 mysql 表上的布尔类型

需要按总金额检索前 3 个供应商,每个类别 - 子类别

组平SQL查询结果

在分组结果 MySQL 5.7 版中获取最多的重复值

将 wordpress 自定义字段转换为单个数组

FreeBASIC 中的 MySQL 访问读取

MySQL Group By 和 Sum 其他列的总值

如何查看打开了多少 MySQL 连接?

重新加载 .env 变量而不重新启动服务器(Laravel 5,共享主机)

MySQL:按字段排序,将空单元格放在末尾

utf8mb4_unicode_ci 与 utf8mb4_bin

MySQL 实用程序 - ~/.my.cnf 选项文件

"SELECT COUNT(*)" 很慢,即使有 where 子句

mysql GROUP_CONCAT 重复