Open7

wordpress dumpのとり方(ほぼmysqlの話)

TomoakiTANAKATomoakiTANAKA

wp dbコマンドが用意されている
wp-config.phpの中身を見てくれるので、ログインしている際にホスト情報など気にしなくても良い

wp db export file名

でdumpをとれる。

ただ、mysql v5.7では色々とセキュリティオプションがあり、importがすんなり行かない

TomoakiTANAKATomoakiTANAKA
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED='';
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;

この3つが邪魔で一発importできない。
セキュリティ上しかたないが、かなり限られているネットワーク環境なのでdumpにでないようにしたい

TomoakiTANAKATomoakiTANAKA

おのおのの意味

SET @@SESSION.SQL_LOG_BIN= 0;

セッションで実行した内容をバイナリログへ書き込むかどうかのフラグ
0 : なし
1 :あり

インポートするときはSQLバイナリログモードを1で使う(らしい、要出典)
https://yoneyore.hatenablog.com/entry/2020/07/15/205611

なので消せば良い

SET @@GLOBAL.GTID_PURGED='';

SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN;

TomoakiTANAKATomoakiTANAKA

--set-gtid-purged=OFF

mysqldump -u ${ユーザ名} -p -h ${エンドポイント} --quick --single-transaction --skip-triggers --set-gtid-purged=OFF ${DB名} > ${ファイル名}

GTIDとは?

  • グローバルトランザクション識別子 (GTID)
  • トランザクションに紐づく情報
  • バックアップするときは邪魔だなぁ

https://dev.mysql.com/doc/refman/5.6/ja/replication-gtids-concepts.html#:~:text=グローバルトランザクション識別子 (GTID) は,のサーバーに一意です。

ONにすると、
「SET @@GLOBAL.GTID_PURGED='';」
がでてくる。
wp-cliを使う限りは、明示的に消すしかないか…

https://docs.oracle.com/cd/E17952_01/mysql-8.0-ja/replication-multi-source-provision-replica.html