Movable Type(MT)で接続するMySQLは、テーブルの総容量が大きいです。MySQLを1つのファイルでエクスポートし、移転先サーバーでのインポートすると容量上限が原因で上手くいかないことがあります。
MySQLのエクスポートをphpmyadminで分割して行えば、容量上限に引っかからずにインポートする事ができます。今回の記事では、分割してエクスポートする手順を解説します。
エクスポートする前に
MTのバージョンを最新のものにして下さい。移転元と移転先でバージョンに差異があると上手く移転できません。
この記事は私の経験を基に書いています。作業に関しては、バックアップを必ず取った上で自己責任でお願いします。
MTのバージョン
この記事に登場するMTのバージョンは、Movable Type 7 r.4503です。
MTのテーブルの一覧を確認する
エクスポートは、phpmyadminで行います。ログインして、MTが参照しているデータベースを確認して下さい。
以下のようなテーブルの一覧を表示させます。テーブルの数は57です。
単一でエクスポートするテーブル
以下の2つは、容量が大きいので単一でエクスポートします。
- mt_entry
- 投稿した記事に関するデータを格納
- mt_template
- テンプレートに関するデータを格納
データを空にするテーブル
以下の3つは、過去ログが不要なら空にして問題ありません。
- mt_log
- MT全体の履歴を格納
- mt_entry_rev
- エントリーの変更履歴などを格納
- mt_template_rev
- テンプレートの変更履歴などを格納
テーブルのデータを空にする手順
一覧から該当するテーブル名を探し「空にする」をクリックするだけです。
ログが必要な場合
ログを残す場合は、同じテーブルを分割してエクスポートして下さい。
同一テーブルを分割してエクスポートする場合は下記のサイトが参考になると思います。
その他のテーブル
前述以外のテーブルに関しては、極端に容量が大きいテーブルはないと思うので、特に操作は必要ないです。
テーブルの容量は一覧の「サイズ」の列を見ると確認できます。
300KiB以下なら、後述する手順でエクスポートすれば、移転先でインポートエラーは避けられるかと思います。
テーブルを指定してエクスポートする手順
手順1
phpmyadminで表示したテーブルの一覧上部にある「エクスポート」タブをクリックします。
手順2
遷移した画面で「詳細」のラジオボタンをクリック。
手順3
テーブルの一覧が表示されたテキストエリアが表示されます。「全選択解除」をクリックして下さい。
手順4
単一テーブルはクリックすれば選択、
複数のテーブルを選択する場合は、テキストエリア内でShiftやCtrlを押しながらクリックすれば複数選択できます。
この画像の場合だと、「mt_accesstoken」をクリックしてから、Shiftキーを押しながら「mt_blog_meta」をクリックして複数のテーブルを選択しています。
前述を参考にログ系のテーブルを空にして、単一でエクスポートするのが「mt_entry」「mt_template」のみとなる場合は、テキストエリア内のテーブルを以下の手順で指定してエクスポートすると良いかと思います。
- 「mt_accesstoken」をクリックし、Shiftキー押しながら「mt_content_type」を選択
- 「mt_entry」のみをクリックして選択
- 「mt_entry_meta」をクリックし、Shiftキー押しながら「mt_tbping_meta」を選択
- 「mt_template」のみをクリックして選択
- 「mt_templatemap」をクリックし、Shiftキー押しながら「mt_ts_job」を選択
手順1・3・5は、Ctrlキーも使って選択すればファイルを一つにすることも可能ですが、間違えると後から面倒なので、私の場合は分けてエクスポートしました。
手順5
画面下部にある「実行」ボタンをクリックします。
ファイルのダウンロードが始まるので、任意の場所に保存して下さい。
拡張子が.sqlのファイルが保存されます。
フルパスの置換
エクスポートしたsqlファイルをテキストエディタなどで開いて下さい。
移転元サーバーに関する情報、フルパスなどの記述があるので、ソフトの置換機能を使うなどして、移転先の情報に書き換えて下さい。
フルパスに関しては、移転先のレンタルサーバーのマニュアル等を参考にすれば分かると思います。
エクスポートした後は?
移転先サーバーでデータベースを生成し、phpmyadminを使ってエクスポートしたファイルを全てインポートします。
MTは、移転元サーバーと同じバージョンのMTを移転先サーバーにアップロード、またはSSH等でファイルを展開します。
CGIのパーミッションをサーバー指定の数値(755)等に設定し、mt-config.cgiにて、移転先サーバーのMySQLを参照します。
移転前の作業が正確なら、正常に管理画面にアクセスできます。
参考サイト
