無料のWordpressサービスWPblogからミニバードにサーバーを移転しました。また合わせてドメインも変更しました。
今回データベース移行時にエラーが出たので今後に備えての備忘録。
Contents
データベース移行事前準備
データベースを新サーバーに移行するためにバックアップを取るためDuplicatorというプラグインを利用したものの、バックアップデータをダウンロード出来ずWPblogでは使えなかったという記事を前回書きました。
そのためデータベースはWPblogの管理画面からバックアップを取得しました。
WPblog管理画面からデータベースのバックアップ手順
まずWPblogにネットオウルのIDでログインします。
WPblogの管理画面になったら「アプリケーション設定」をクリックします。
アプリケーション設定の項目にデータベースのバックアップがあるので「データベースのバックアップ」をクリックします。
バックアップするファイルを圧縮するか非圧縮のSQLのどちらにするか選択します。
ダウンロードしてデータベース内の文字列を変更などするのであれば圧縮なしのSQLという手もありますが基本は圧縮したものでいいと思います。
後述する「WP Migrate DB」というプラグインでデータベース内のドメイン表記も変更も可能です。
ブラウザの設定にもよりますが「エクスポート実行」をすることでダウンロードが開始されます。
WPblogでエクスポートしたデータベースをミニバードに移行
WPblogからエクスポートしたデータベースをミニバードに移行する手順を説明します。既に簡単インストールでWordpressとデータベースが作られている状態からの説明です。
今度はWPblogでなくミニバードの管理画面にログインします。(同系列のためネットオウルIDでそのままログイン)
ホームページメニューから「データベース設定」をクリックします。
「phpMyAdmin」タブをクリックします。
ユーザー名とパスワードを聞かれるのでWordpressを簡単インストールした際に発行されたユーザー名とパスワードを入力しログインしてください。
phpMyAdminの画面に入ったら「インポート」をクリックします。
ここでWPblogからエクスポートしておいたデータベースファイルを選択し「実行」します。
以上、で無事インポート終了・・・と思いきや
Unkown Collation ‘utf8mb4_unicode_ci’エラー発生
圧縮したことで何か問題が起きているのかと思いWPblogに戻り圧縮なしのSQLファイルをエクスポートしてきてもだめでした。
こういう時はGoogle先生にエラー文そのまま訪ねるのが正解です。
同じような問題に直面した人がおり原因と解決策が載っていました。
utf8mb4_unicode_ciという文字コードはMySQLの新しいバージョンである5.5.3から使えるようになったものということで、それを古いバージョンのMySQLにインポートしようとしてもエラーになるということでした。
ミニバードのMySQLバージョンは5.0.95ということでWPblogの方が新しいバージョンを利用していたようです。
てっきり同じ会社なのでデータの移行もスムーズに行くかと思いましたがこんなところでつまづきました。
utf8mb4_unicode_ciエラーの対処法
こちらのページによればphpMyAdminを利用すれば古いMySQLと互換性を持たせる形でエクスポートできるようですが残念ながらWPblogでは使えません。
そんな時はWordpressのプラグインに頼ってみようと思い「Migrate DB」をインストールしたところ
どんぴしゃの古い互換性を保つ機能がありました。
WP Migrate DBを利用したDBバックアップ手順
手順というほどのことはないですが
WP Migrate DBをインストールした後、[ツール]-[Migrate DB]でバックアップの設定を行います。
Advanced OptionsのところにMySQL5.5以前のバージョンとの互換性を持たせる項目があります。(たしか最初からチェック入ってました。)
基本的に初期設定のままで問題ありません。
私のようにドメイン変更がある場合はFind とReplaceの部分に検索して置換する文字列をいれるくらいです。
データベースのインポートの後にいくつか記事をチェックしていてリンクのアドレスのスラッシュが二つになっていておかしいなと思いましたがこのスクリーンショットを見て原因がわかりました。
アドレスバーからコピペしたときに間違って置換文字にスラッシュを入れてました。
このおかげで結局内部リンクのある記事を手書きでなおしました。(1回データベース初期化してやり直すのとどっちが早かったのか)
文字列を置換するときは間違いがないことを確認して実行しましょう。
「Export」をクリックするとエクスポートデータがダウンロードされます。
ここでエクスポートしたデータをミニバードのphpMyAdminで読みこむと無事インポートが成功しました。
やったね!
データベース接続確立エラー
さてブログを確認しようと思いブラウザから確認すると「データベース接続確立エラー」というのがでました。
まだ駄目だったか・・・と思ったもののこれも同じような状況の人がおり、
wp-config.phpのなかのデータベース名やユーザー名、パスワードが間違っているときに起こるそうです。
データベースのインポートで書き変わったのだと思います。FTPでwp-config.phpをダウンロードして値を書き替えてアップロードしたら無事ブログが表示されました。