既存のデータベースのスレーブを構築するのに忙しい。スレーブをマスターと同じ状態にする前に、インポートしたデータのビンログを作成したくありません。
これは主に、100 Gのデータをインポートする際のスペースを節約するためです。
mysqldump somelargedb | gzip > /somewhere/withspace/dump/somelargedb.sql.gz
非圧縮のこのファイルは100 Gbの範囲です。圧縮後は約2Gb
私はこの答えを見つけました。
https://geert.vanderkelen.org/2009/disabling-binary-logging-when-restoring-a-mysql-dump/
bash $ (echo "SET SESSION SQL_LOG_BIN=0;"; cat dump.sql) > dump_nobinlog.sql
より良い解決策は次のようになります。上記サイトのコメントより。しかし、データの量はかなり多いので、データがエクスポートされるのを待つためにさらに数時間を費やしたくありません。これには、ダンプ時のファイルの圧縮も含まれません。
$ echo "SET SESSION SQL_LOG_BIN=0;" > dumpfile
$ mysqldump .... >> dumpfile
私はそれを次のように適合させました。
echo "SET SESSION SQL_LOG_BIN=0;" | gzip | zcat - /somewhere/withspace/dump/somelargedb.sql.gz | mysql -u root -p somelargedb
これは、.gzダンプに対して次の方法で実行できます。
(echo "SET SESSION SQL_LOG_BIN=0;"; gzip -dc dump.sql.gz) | mysql
または、リモートサーバーから直接データベースをコピーする場合:
(echo "SET SESSION SQL_LOG_BIN=0;"; mysqldump --Host your_Host --verbose --compress my_database) | mysql my_database
Mysqldumpとmysqlの両方のユーザーとパスワードが.cnfファイルに追加されていることを意味します(例:~/.my.cnf
)