僕は、AWSのEC2でbitnamiを使ってWordpress環境を構築しています。
ここではデータベースデータ(MySQL)の移行を行います。
移行元と移行先のWordpressが立ち上がっていることが前提です。
データベースからデータを取り出す方法についてはこちらをご参照ください。
関連記事 – 「WordPressの構築・運用方法」
手順
簡単にいうとこんな感じです。
取り出す時の反対をすればよいだけです。
ちょっとやってみます。
- phpMyAdminを公開する
- phpMyAdminのユーザー名とパスワードを確認する
- phpMyAdminにログインする
- wordpressのテーブルを探す
- phpMyAdminのインポート機能でインポート ← ここだけが違う
- phpMyAdminを非公開にする
phpMyAdminを公開する
bitnami環境には標準でphpMyAdminがインストールされています。
ただ、そのままアクセスしようとしても怒られます。
平たく言えばセキュリティの関係でつなげないとのこと。
ここでは公開する手順を説明しますが、作業が一通り終わればちゃんと非公開にすることをおススメします。
TeratermなどでEC2のインスタンスに接続
viとかでphpmyadminのhttpd-app.confを開く
vi /opt/bitnami/apps/phpmyadmin/conf/httpd-app.conf
内容を修正する。
# この行を探し以下のように修正する
Allow from 127.0.0.1
↓
#Allow from 127.0.0.1
Allow from all
# この行も探し以下のように修正する
Require local
↓
#Require local
Require all granted
Apacheのリスタート
sudo /opt/bitnami/ctlscript.sh restart apache
とりあえずつないで確認。URLに以下の内容を入れる。
http://(IpアドレスやHPアドレス)/phpmyadmin
プログラム界の最弱にして最強のウザキャラ。
ユーザー名とパスワードが立ちはだかります。
次は、ユーザー名とパスワードを確認します。
phpMyAdminのユーザー名とパスワードを確認する
TeratermなどでEC2のインスタンスに接続
vi などでwordpressのwp-config.phpを開く
vi /home/bitnami/apps/wordpress/htdocs/wp-config.php
ユーザー名とパスワードを確認する。
/** MySQL database username */
define('DB_USER', 'bn_wordpress');
/** MySQL database password */
define('DB_PASSWORD', 'パスワード');
phpMyAdminにログインする
確認したユーザー名とパスワードでphpMyAdminにログインする。
ログイン後はこんな感じ
wordpressのテーブルを探す
phpMyAdminのインポート機能でインポート
bitnami_wordpressを選択→インポート
ツリー上でbitnami_wordpressをちゃんと選択すること!!
.sqlもしくは.zipしか取り込まないとのこと。
バックアップファイルをzip圧縮します。(サイズのせいか圧縮せずに行ったら失敗)
右クリック→送る→圧縮(zip形式)フォルダー
「データベース "bitnami_wordpress" へのインポート」となっていることを確認。
※「現在のサーバーへインポート」となっている人はツリーでbitnami_wordpressを選択します。
ファイルの選択ボタンを押します。
zip圧縮したファイルを選択します。
zip圧縮したファイルを選択されていることを確認
後は心をこめて実行
それなりに時間がかかります。
焦らしてきますが、ひたすら待つのがよろしいかと。
うまくいったらこんな感じ
注意事項
-
Wordpressのパスワードも引き継がれます。
移行前のパスワードを紛失しないようにしましょう。 -
この作業を行うとオリジナルのトップページが崩れる場合があります。
ログイン状態だとわからないのですが、キャッシュをクリアしたりログアウトすると崩れる様子が確認できました。
対策はこちら → WordPress(AWS + bitnami) – MySQLをリストアしコピーサイトを作ったら本家が死んだ
僕がハマった失敗ケース
- バックアップ取得時の問題 → 参考
- データ作成オプションで、挿入前にテーブルを空にするが未チェック→インデックス違反
- 生成オプションでIF NOT EXISTSが未チェック→テーブルがあるのに作ろうとする
- .sqlファイルのままでやろうとしたがファイルサイズが40メガオーバー
- 「現在のサーバーへインポート」の状態で実行
まとめ
結構大変です。
これをやる人は頑張ってください。
ちなみにこれだけだと、まだブログ記事の画像が移行できていません。
おわり
コメントを残す