Home / ゆめのりょけんについて / MT4からMT6に移行する作業手順(MySQL移行手順)

Jun
06
2014

MT4からMT6に移行する作業手順(MySQL移行手順)

今回のリニューアルでは、Movable Typeを4.28から6.03にバージョンアップしました。
もうMTを使い始めて10年ほどになりますが、バージョンアップ作業はいつも神経を磨り減らすものです(できればやりたくない)。
とりあえず今回は、MT4からMT6に移行した際の作業ログをまとめておくことにしました。
MTの移行レポートも少なくなりつつある現状、他の一般ユーザーの参考になれば幸いです。

- スポンサードリンク -

ブログのバックアップ

ブログのシステムをいじるときは、何はともあれバックアップ。
バックアップさえ残っていれば、何か不具合があった時に、最低でも元の状態に復元することができます。
実際、今回の移行作業では致命的な不具合が起きたので、バックアップのおかげで命拾いしました。

1 MTのバックアップ機能でバックアップを作成

今回の移行作業ではデータベースをMySQLに変更するので、MTのバックアップファイルが必要になります。
MT管理画面のツールからバックアップでバックアップファイルを出力します。
ひとつのMTで複数のブログを運営しているときは、システムメニューから一括でバックアップファイルを作成したり、出力するファイルサイズを分割してバックアップファイルを作成することができますが、結論から言うと、それぞれのブログごとに分割しないでバックアップファイルを作成するのがトラブルを避けるコツです(後述)。

2 FTPでフォルダごとローカルに保存

何かあったときに一番安心なのは、サーバーの状態をそっくりそのままローカルに保存しておくことなので、念のためMTとブログのフォルダを丸ごとFTPでローカルにダウンロードしておきました。

ちなみにFTPクライアントはFFFTPを使っていたのですが、FFFTPはWindows7といまいち相性がよくないらしく、ダウンロード失敗が頻発します。
そこで、FilezillaというFTPクライアントに変えてみたところ、FFFTPで4時間以上かかったダウンロードが1時間弱で終わって感動しました。
移行作業ではダウンロードとアップロードを頻繁にするので、FFFTPの転送速度の遅さに辟易したら、Filezillaオススメです。

MTのデータベースをSQLiteからMySQLに移行

MT6のデータベースはMySQLを使用するので、MT4でSQLiteを利用していた場合は、データベースの移行作業が必要になります。
結果的に今回のバージョンアップでは、この作業が一番苦労しました。

1 さくらインターネットのデータベース機能でMySQLを新規作成

我が家は「さくらインターネット」を使っているので、サーバコントロールパネルのデータベースの設定から、MySQLを新規作成します。
MySQLの作成そのものは簡単でした。
「データベース サーバ」「データベース ユーザ名」「接続パスワード」「データベース名」の情報は、次の設定で必要になるのでメモしておきます。

2 mt-config.cgiを開いてデータベースを設定

FTPでmt-config.cgiをダウンロードして、中のデータベース情報を書き換えます(エディタはTeraPadを使いました)。
従前のSQLiteの情報を#でコメントアウトして、新たにMySQLの情報を書き足します。

#======== DATABASE SETTINGS ==========
#ObjectDriver DBI::sqlite
#Database /home/XXXXX(SQLiteのパス)

ObjectDriver DBI::mysql
Database XXXXX(データベース名)
DBUser XXXXX(データベース ユーザ名)
DBPassword XXXXX(接続パスワード)
DBHost XXXXX(データベース サーバ)

修正したmt-config.cgiは、こんな感じになります。

3 設定ウィザードでインストール

データベース情報を変更したmt-config.cgiをサーバーにアップしてMT4の管理URLにアクセスすると、いつものログイン画面ではなく、アカウント作成の設定ウィザードが開始されます。
ここはデフォルトのままインストールに進んでOK。
インストールが終ってサインインすると、初期化されたMT4の管理画面になります。

4 MTのバックアップ機能からブログを復元

管理画面に入ったら、システムメニューのツールからバックアップの復元をします。
出力しておいたバックアップファイルを「参照」して「復元」し、公開設定の修正が必要なら修正して「次へ」。
復元作業が始まり、「全てのデータの復元に成功しました。」となれば、MySQLへの移行完了です。

5 MTのバックアップファイルから復元できない不具合

しかし、今回は、ここでトラブルが発生しました。

「アップロードされたファイルはこのシステムのバージョン(4.0071)とは異なるバージョン()でバックアップされています。このファイルを使って復元することはできません」

こんなエラーメッセージが出て、何度やってもデータの復元に失敗します。
MT4.28でバックアップ出力してMT4.28で復元してるのになんでや!?
正確には、いくつかのデータは復元に成功しているのですが、途中から復元に失敗しているようです。

で、困ったときはGoogle先生。
あれこれ検索してみたところ、解決策はこちらの記事に書いてありました。
http://me.greymaku.com/2014/01/post-9.php

どうやらバックアップファイルを分割して作成したせいで、2つめ以降のxmlファイルの1行目にバージョン情報が欠落しているための不具合のようです。
そんな心臓に悪い不具合やめてよ!

そんなわけで、もう一回データベースをSQLiteに戻して、今度は分割しないでバックアップを出力して、もう一回MySQLに移行して復元したら、今度はちゃんと復元に成功しました。

ちなみにローカルにバックアップしてあったSQLiteをFilezillaでアップロードした時にもエラーが発生。

DBD::SQLite::db prepare failed: database disk image is malformed

こんなメッセージが出て、今度はMTにログインできないトラブルに見舞われました。
これは、転送モードがアスキー形式だったために起きたエラー。
バイナリ形式で転送しなおすと、無事にアクセスできるはずです。

ブログを再構築する

てなわけで、データの復元が成功したら、ブログすべてを再構築。
トラブル続きだったのでハラハラドキドキでしたが、無事に最後まで再構築が通って、データベースの移行作業は完了です。
データベース関係の変更は、最悪の場合、ロストの可能性もあるので、ほんと精神的に疲れました。ぐったり。

とりあえず、記事が長くなってきたので今回はここまで。
次回は本格的なMT6への移行作業です。
MT4からMT6に移行する作業手順(MT6アップグレード)

- スポンサードリンク -

  • このエントリーをはてなブックマークに追加

Comments:2

竹澤宏 2014年7月 4日 09:42

とても参考になりました、ありがとうございます。

サーチライト 2014年7月 5日 04:07

竹澤さん、コメントありがとうございます。
お役に立てたようであれば嬉しいです。記事を書いた甲斐がありました。

Comment Form

コメントは管理人の承認後に公開されます。

Information
  • twitter
  • rss
  • はてなブックマーク
  • Instagram
カテゴリー
タグクラウド
記事への反応

back to top