2026年7月15日

2026年7月15日

WordPressのデータベースをローカルにインポートする方法

はじめに

本番サイトのデータベースをローカル開発環境に持ち込む際は、単純にインポートするだけでなくURL置換が必要です。wp search-replaceを使えば全テーブルのURLを一括で置き換えられます。

症状・原因

  • 本番サイトをローカルで再現して開発・テストしたい
  • サイト移行時にデータベースを別サーバーに移したい
  • バックアップファイルからデータを復元したい
  • インポート後にサイトが真っ白になる・リダイレクトループが発生する

解決手順

ステップ1:ローカルDBを準備する

# ローカルのMySQL/MariaDBにDBを作成
mysql -u root -p

# MySQLプロンプト内で実行
CREATE DATABASE wp_local CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_local_user'@'localhost' IDENTIFIED BY 'local_password';
GRANT ALL PRIVILEGES ON wp_local.* TO 'wp_local_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

# wp-config.php を更新(ローカル用の設定)
define('DB_NAME',     'wp_local');
define('DB_USER',     'wp_local_user');
define('DB_PASSWORD', 'local_password');
define('DB_HOST',     'localhost');

ステップ2:SQLファイルをインポートする

# 通常の SQL ファイルをインポート
mysql -u wp_local_user -p wp_local < backup.sql

# gzip 圧縮ファイルを直接インポート
gunzip -c backup.sql.gz | mysql -u wp_local_user -p wp_local

# WP-CLI でインポート(wp-config.php の設定を自動使用)
wp db import backup.sql

# 大きなファイルをインポートする場合(タイムアウト回避)
mysql -u wp_local_user -p \
    --max_allowed_packet=256M \
    --net_buffer_length=16384 \
    wp_local < backup.sql

# インポート進捗を表示しながら実行(pv コマンドが必要)
pv backup.sql | mysql -u wp_local_user -p wp_local

ステップ3:URLをローカル用に置換する

# WP-CLI で URL を一括置換(全テーブル対象)
# 本番URL → ローカルURL に変換
wp search-replace 'https://example.com' 'http://localhost/wordpress' \
    --all-tables \
    --report-changed-only

# サブディレクトリインストールの場合
wp search-replace 'https://example.com' 'http://localhost:8080' \
    --all-tables

# シリアライズされたデータも自動で処理(デフォルト動作)
# --skip-columns=guid でGUIDは変更しない
wp search-replace 'https://example.com' 'http://localhost/wp' \
    --all-tables \
    --skip-columns=guid \
    --report-changed-only

# 置換のプレビュー(実際には変更しない)
wp search-replace 'https://example.com' 'http://localhost/wp' \
    --all-tables --dry-run

ステップ4:インポート後の設定を修正する

# WordPress の設定をローカル用に更新
wp option update siteurl 'http://localhost/wordpress'
wp option update home    'http://localhost/wordpress'

# パーマリンク設定をリセット(.htaccessを再生成)
wp rewrite flush --hard

# キャッシュをクリア
wp cache flush
wp transient delete --all

# 管理者パスワードをローカル用に変更
wp user update 1 --user_pass='localpassword123'

# デバッグモードを有効化(ローカル開発用)
wp config set WP_DEBUG true --raw
wp config set WP_DEBUG_LOG true --raw
wp config set WP_DEBUG_DISPLAY true --raw

ステップ5:phpMyAdmin でインポートする

phpMyAdmin でのインポート手順:

1. phpMyAdmin にログイン
   http://localhost/phpmyadmin/

2. 左ペインから対象データベースを選択
   (または先に「データベース」タブで作成)

3. 上部メニューの「インポート」タブをクリック

4. 設定:
   - ファイル選択: backup.sql または backup.sql.gz を選択
   - 文字セット: utf-8
   - 形式: SQL(自動検出)
   - SQLの互換モード: NONE

5. 「実行」ボタンをクリック

6. 注意: phpMyAdmin のデフォルト最大ファイルサイズは
   php.ini の upload_max_filesize に依存(通常 2MB)
   大きなファイルは:
   php.ini で upload_max_filesize=256M に変更
   または mysql コマンドラインを使用

注意事項

  • wp search-replace はシリアライズされたPHPデータ(テーマ・プラグインの設定など)も自動で処理しますが、--dry-run で事前に変更件数を確認することを推奨します
  • ローカルにHTTPSが設定されていない場合、本番のhttps://をローカルのhttp://に変更する際は混在コンテンツの警告が出ることがあります
  • wp_usersテーブルのメールアドレスはそのままインポートされます。本番のメール送信が発生しないよう、SMTPを無効化するかメールキャプチャツール(MailHog等)を使用してください

まとめ

ローカルへのDBインポートは①CREATE DATABASEでローカルDB作成、②gunzip -c | mysqlまたはwp db importでSQLを取り込む、③wp search-replace 'https://example.com' 'http://localhost/wp' --all-tablesでURL一括置換(シリアライズデータも自動処理)、④wp option update siteurl/homewp rewrite flush --hardでWordPress設定を更新、⑤wp user updateでパスワード変更・WP_DEBUG有効化でローカル開発環境を整備します。

お気軽にご相談ください

お見積りへ お問い合わせへ