1. ホーム
  2. mysql

[解決済み] テーブルをロックせずにMySQLDumpを実行する

2022-03-20 20:14:28

質問

本稼働中のデータベースをローカルの開発用データベースにコピーしたいのですが、どうすればいいですか? 本番データベースをロックすることなく、これを行う方法はありますか?

現在使っているのは

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

しかし、実行中に各テーブルをロックしています。

どうすればいいですか?

を使用しますか? --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