MovableType SQLiteからMySQLへの移行

SQLite MySQL これまでMovableTypeのDBとしてSQLiteを利用していたのですが、いろいろあってMySQLに移行することに。その手順の覚え書き。

しかし、率直な感想としてMySQLはSQLiteとくらべて遅いです。MT3.3 + MySQLでの利用は重いとあちこちでいわれているのは見てましたが、結構変わります。再構築がとても時間がかかる

SQLite利用で問題ない人は無理にMySQLにしない方がいいのかも。処理の早さではSQLiteの方が2倍早いといわれてますし。 ただ、phpMyAdminでデータベースを操作できる点はSQLiteにはない利点です。ま、MovableTypeで普通にブログするだけならなくてもいいんですけど。 正直、一度ためしに使ってみたかっただけってこともなくはないですが、今後ちょっとMySQL + php が必須の環境を利用する予定があるので、その前哨戦でということで。

実際の作業手順は以下の通り。 まずは、現在のデータをパックアップ。SQLite利用の場合はmtt/dbのファイルを丸ごとダウンロードしておく。何かあったらそのままアップロードし直せば復帰できる。

MTフォルダ内のmt-db2sql.cgiで移行するつもりがうまくいかなかったので、Ogawa::Memorandaさんで配布されているmt-db-convert.cgiを利用させてもらいました。
mt-db-convert.cgiダウンロード後、解凍した中にMT3.1、3.2、3.3用の.cgiファイルがあるので、自分の使用しているMTのバージョンにあわせて. mt-db-convertXX.cgiをアップロード。アップロードする先は、先述のmt-db2sql.cgiと同じディレクトリ/mt内。アップロード後パーミッションを実行可能(755)に設定しブラウザからアクセス。例えばmt-db-convert.cgiのアップロード先がmtフォルダ内で利用するMTのバージョンが3.3であれば、http://www.example.com/mt/mt-db-convert33.cgiという感じ。

ブラウザでアクセス後、以下のような画面が表示される。

mt-db-convert ?定画面

左側が現在のデータベース情報。枠内一番上のObjectDriverが現在利用しているデータベースの種類なので確認。

右側が移行先のデータベースの設定。
ObjectDriverMySQLを選択し、Databaseに利用するデータベース名、DBUserにデータベースのユーザー名、DBPasswordにパスワード、DBHostにデータベースサーバのURLを入力。確認して間違いがなければ左下のConvertボタンをクリック。

データベースの規模によりますが、データの移動にしばらく時間がかかります。画面が切り替わり、作業内容とともに* Done copying data from DBI::sqlite to DBI::mysql! All went well.*と表示されればデータの変換完了。phpMyAdminで移行されたか確認します。

phpMyAdminでデータベースを確認

データベースにアクセスすると、画面左側にmt_で始まるテーブル名が表示されます。mt_で始まる名前のテーブルがない場合や項目が極端に少ない場合はデータの移行に失敗した可能性があるので、mt-db-convart.cgiで入力した内容に間違いないか確認してもう一度実行して見てください。

無事に移行されたなら、mt-config.cgiの設定内容をMySQL用に変更します。
mt-config.cgiの以下の部分(MT3.3の場合は27行目から)を変更します。

##### MYSQL #####
ObjectDriver DBI::mysql
Database DATABASE_NAME
DBUser DATABASE_USERNAME
DBPassword DATABASE_PASSWORD
DBHost localhost

最初のObjectDriver DBI::mysqlはそのまま。以下、

Database 利用するデータベース名
DBUser データベースのユーザー名
DBPassword データベースのパスワード
DBHost データベースサーバのURL

に変更します。

POSTGRESQLSQLITEBERKELEYDBの設定部分は利用しないので#でコメントアウトするか、丸ごと削除します。

##### SQLITE #####
#ObjectDriver DBI::sqlite
#Database /path/to/sqlite/database/file

修正がすんだら、mt/ディレクトリにアップロードして一応再構築。問題ないようならOK。
最後に、mt/mt-db/mt-db-convertXX.cgimt-db2sql.cgiを削除して終了です。

このエントリーをはてなブックマークに追加
はてなブックマーク - MovableType SQLiteからMySQLへの移行
Facebook にシェア
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]

スポンサーリンク