MySQLのエクスポートでMovable Typeを引っ越しする方法  

レンタルサーバー引っ越し時にMovable Typeの移転をする方法はいくつかありますが、Movable Type上で「エクスポート」を使った場合はテンプレートやタグなどのデータが落ちてしまいます。また「バックアップ」の場合、復元に成功した試しがありません(オレ調べ)。

ということで、MySQLデータベースをまるっとエクスポート→インポートするのが楽、かつ確実なんじゃないかと思うので、その方法をメモしておきます。シェルを解放していないサーバー&コマンドラインに慣れていない人を想定し、全ての操作はWebベースの管理ツール「phpMyAdmin」上で行います。

(1)インポート先のphpAdminで、インポートの仕様を確認

インポート先のサーバーでデータベースを作成し、phpMyAdminにログインします。そしてデータベースを選択→[インポート]をクリックし、インポートの仕様を確認します。確認するポイントは以下です。

(1)対応している文字コード (2)最大ファイルサイズ (3)圧縮ファイルに対応しているか

文字コードはUTF-8を利用します。phpMyAdminでログインする際、[日本語(UTF-8)]を選んでログインします。UTF-8非対応なサーバーはいろいろ面倒が起きそうなので、利用しないのが無難だと思います。


チカッパ! の場合。5012KBまで対応。圧縮ファイル非対応。


さくらのレンタルサーバーの場合。8192KiB(≒8MB)まで対応。bzip2形式の圧縮ファイルに対応しているらしい。


ヘテムルの場合。40960KiB(≒41MB)まで対応。圧縮ファイル非対応。

大量の記事を持っている場合、インポート先のphpMyAdminが受け入れられるファイルサイズに合わせて、細切れにデータをエクスポートする必要があります。

データをエクスポートする

エクスポート元のphpMyAdminにログインし(もちろんUTF-8で)、Movable Typeが使用しているデータベースの容量を確認します。


全部で10.0MiB。ヘテムルなら何も考えずにエクスポート→インポートできるけど、他のサーバーを利用する場合には、分割してエクスポートする必要があります。各テーブルの容量を参照し、インポート可能なサイズにするための分割法を計算します。エクスポート時にSQL文が加わると多少サイズが増えるので、ギリギリではなく余裕を持った容量にするのが良いです。


エクスポートを実行します。分割するためには左上にあるテーブルのリストから、まとめてエクスポートするテーブルだけを選択します。念のため[遅延インサートを使用する]をチェックし、[完全なINSERT文を作成する]もチェック。これで[ファイルに保存する]でファイルに保存します。


1つのテーブルでインポートできる容量をはみ出してしまう場合(mt_entryでありがち)、そのテーブルを選択し、[エクスポート]メニューでダンプする行数を指定します。例えば1500行で6MBとかあるのを3MB程度ずつにしたい場合は、0から800と801から1600(こういう指定でも1500行までで止まる)のように指定して、半分ずつのファイルにします。

いよいよ困ったときは、SQLなんて所詮テキストデータなので、秀丸で適当に切っときます。

データをインポートする

用意したデータを引っ越し先のMySQLにインポートし、元のサーバーと同じMTをインストールしてまずは動作確認しておくのが無難。アップグレードが必要な場合はその後インストールします。以上で終了。

  • 次の記事 »
  • Clip to Evernote
  • このエントリーをはてなブックマークに追加
  • « 前の記事