ワードプレスで特定のテーブルをダンプ、リストア

ワードプレスにおいて、記事のみを元DBから別DBにインポートしてください!というリクエストがあったので、その対処法を記載します。

通常は、DBまるごとでのダンプリストアが多いのですが、他のテーブルはコピーしたくない、という内容でしたので、ここではテーブル単位でダンプリストアを掛けることにしました。

まずは記事における関連テーブルを調査。wp_postだけではなく、アイキャッチやカテゴリーやタグが絡むため、それらのテーブルも必要でした。

調査後、今回必要になったテーブルは下記の4つ。

wp_post 記事本体
wp_postmeta アイキャッチなどの記事関連データ
wp_term_taxonomy カテゴリー、タグ、カスタムタクソノミとターム名関連データ
wp_term_relationships カテゴリー、タグ、カスタムタクソノミと投稿関連データ

まずは元DBからの指定テーブルダンプです。
cd /root
mysqldump -u root -pルートパスワード 元DB名 wp_posts > wp_posts.sql
mysqldump -u root -pルートパスワード 元DB名 wp_postmeta > wp_postmeta.sql
mysqldump -u root -pルートパスワード 元DB名 wp_term_taxonomy > wp_term_taxonomy.sql
mysqldump -u root -pルートパスワード 元DB名 wp_term_relationships > wp_term_relationships.sql

ダンプした指定テーブルを別DBにてリストア
mysql -u root -pルートパスワード -D 別DB名 < wp_posts.sql
mysql -u root -pルートパスワード -D 別DB名 < wp_postmeta.sql
mysql -u root -pルートパスワード -D 別DB名 < wp_term_taxonomy.sql
mysql -u root -pルートパスワード -D 別DB名 < wp_term_relationships.sql

ドメインの変更がある場合。
コマンドでやってもいいんですが、phpMyAdminも好きなので、こちら上でURL置換w

UPDATE `wp_posts` SET guid=REPLACE (guid,'旧URL','新URL');
UPDATE `wp_posts` SET post_content=REPLACE (post_content,'旧URL','新URL');
UPDATE `wp_options` SET option_value=REPLACE (option_value,'旧URL','新URL');
UPDATE `wp_postmeta` SET meta_value=REPLACE (meta_value,'旧URL','新URL');
UPDATE `wp_posts` SET post_title=REPLACE (post_title,'旧URL','新URL');

環境はCentOS7でMariaDB10.4系でした。CentOS6でmysqlでもいけると思います。

(*^^)v

 COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

NO IMAGE

php-fpm のプロセス数

NO IMAGE

nmapを使ったポートスキャン

NO IMAGE

mysql でInnoDBが破損してmysqldが起動しなくなった場合

NO IMAGE

CentOS7でfirewalldではなくiptablesを設定する

NO IMAGE

bc.googleusercontent.comのブロック対応について

NO IMAGE

指定ディレクトリ以下の各ファイル容量検索