MT移転先のインポートエラーを避ける移転元MySQLの分割エクスポート

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
テンプレートの変更履歴などを格納

テーブルのデータを空にする手順

一覧から該当するテーブル名を探し「空にする」をクリックするだけです。

ログが必要な場合

ログを残す場合は、同じテーブルを分割してエクスポートして下さい。

同一テーブルを分割してエクスポートする場合は下記のサイトが参考になると思います。

www.dbonline.jp

その他のテーブル

前述以外のテーブルに関しては、極端に容量が大きいテーブルはないと思うので、特に操作は必要ないです。

テーブルの容量は一覧の「サイズ」の列を見ると確認できます。

300KiB以下なら、後述する手順でエクスポートすれば、移転先でインポートエラーは避けられるかと思います。

テーブルを指定してエクスポートする手順

手順1

phpmyadminで表示したテーブルの一覧上部にある「エクスポート」タブをクリックします。

手順2

遷移した画面で「詳細」のラジオボタンをクリック。

手順3

テーブルの一覧が表示されたテキストエリアが表示されます。「全選択解除」をクリックして下さい。

手順4

単一テーブルはクリックすれば選択、

複数のテーブルを選択する場合は、テキストエリア内でShiftやCtrlを押しながらクリックすれば複数選択できます。

この画像の場合だと、「mt_accesstoken」をクリックしてから、Shiftキーを押しながら「mt_blog_meta」をクリックして複数のテーブルを選択しています。

前述を参考にログ系のテーブルを空にして、単一でエクスポートするのが「mt_entry」「mt_template」のみとなる場合は、テキストエリア内のテーブルを以下の手順で指定してエクスポートすると良いかと思います。

  1. 「mt_accesstoken」をクリックし、Shiftキー押しながら「mt_content_type」を選択
  2. 「mt_entry」のみをクリックして選択
  3. 「mt_entry_meta」をクリックし、Shiftキー押しながら「mt_tbping_meta」を選択
  4. 「mt_template」のみをクリックして選択
  5. 「mt_templatemap」をクリックし、Shiftキー押しながら「mt_ts_job」を選択

手順1・3・5は、Ctrlキーも使って選択すればファイルを一つにすることも可能ですが、間違えると後から面倒なので、私の場合は分けてエクスポートしました。

手順5

画面下部にある「実行」ボタンをクリックします。

ファイルのダウンロードが始まるので、任意の場所に保存して下さい。

拡張子が.sqlのファイルが保存されます。

フルパスの置換

エクスポートしたsqlファイルをテキストエディタなどで開いて下さい。

移転元サーバーに関する情報、フルパスなどの記述があるので、ソフトの置換機能を使うなどして、移転先の情報に書き換えて下さい。

フルパスに関しては、移転先のレンタルサーバーのマニュアル等を参考にすれば分かると思います。

エクスポートした後は?

移転先サーバーでデータベースを生成し、phpmyadminを使ってエクスポートしたファイルを全てインポートします。

MTは、移転元サーバーと同じバージョンのMTを移転先サーバーにアップロード、またはSSH等でファイルを展開します。

CGIのパーミッションをサーバー指定の数値(755)等に設定し、mt-config.cgiにて、移転先サーバーのMySQLを参照します。

移転前の作業が正確なら、正常に管理画面にアクセスできます。

参考サイト

qiita.com

it.k-solution.info