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/home・wp rewrite flush --hardでWordPress設定を更新、⑤wp user updateでパスワード変更・WP_DEBUG有効化でローカル開発環境を整備します。