さくらインターネットでMovable Type3.2をBerkeleyDBからMySQLへ移行
MySQLにデータベースを移行する事にしました。
MovableType3.2、FFFTP、さくらインターネットのスタンダードプランでやってみました。

いきなり高度な事に取り組んで順番がめちゃくちゃなような気がしますが、MovableType3.2はデータベースがBerkeley DBだと、サイトのデータ量が多くなってきた時にエラーがでやすくなるそうです。

Berkeley DBの環境下でMovable Type 3.2日本語版をご利用のお客様へのお知らせ
去る9月29日より出荷を開始しました、「Movable Type 3.2日本語版」について、Berkeley DBをご利用のお客様で、以下の現象を確認いたしましたので、ご案内いたします。

・コメントの受信時に、MTEntryNext などのナビゲートリンクが消えてしまう。
・再構築時におけるメモリー使用量の増加により、再構築できない現象が発生する可能性がある。
・recently_commented_onの処理により、パフォーマンスが低下する可能性がある。
これらの問題について、現在修正版を準備中です。今しばらくお待ちください。

MTひよっこ、ひよっこなMT初心者としては、高度なことに取り組むのは気がひけていました。
MovableTypeのインストールだけでも一杯一杯のような気もします。
その上さらに、MySQLphpMyAdmin
全く理解できていないものに足を踏み込んでしまっていいんのだろうかと悩んでいました。

しかし、よく考えるとBerkeley DBを、何も理解してないくせに使っている自分に気づき、この問題は自己解決しました(笑)。

MySQLはデータベース。
MovableTypeには、何かデータベースが必要。
MovableType3.2のデータベースとしては、Berkeley DBはちょっと弱い。
MySQLの管理ツールがphpMyAdmin。
それ以外何もわかっていない。

これだけわかれば十分です。

そういうわけで、MySQLにレッツトライ!(笑)。


MTひよっこが使っているサーバーはさくらインターネットのスタンダードプランです。
さくらインターネットを含め、3つの初心者向けのレンタルサーバーを使ってみましたが、一番サクサク動いてくれるレンタルサーバーで、気に入ってます。
以前はマニュアルがMT3.2に対応していなかったりしてイマイチな部分もありましたが、マニュアル、FAQともに充実してきています。

欠点としては、ドメインの管理が20個までしかできないという事です。
ただ、とにかくブログをたくさん作りたいという事であれば、「さくらブログ」が容量一杯まで無制限に作れるので、それ以外に20個もドメインが管理できれば十分かなという気もします。


ここで注意事項があります。
・ライトプランではMySQLは使えない。
・1つのサーバーにつき、使えるMySQLはひとつのみ。

という事です。
MySQLはひとつしか使えませんが、ひとつのサーバーにひとつのMovableTypeをインストールしてブログを複数使う、という普通の使い方なら問題は無いと思われます。

項目 ライトプラン スタンダードプラン プレミアムプラン
料金(年払い) 1500円 5000円 15000円
初期費用 1000円 1000円 1000円
容量 300M 1G 3G
CRON ×
MySQL ×
ドメイン別表示設定
(リダイレクト)
ドメイン別表示設定
(エイリアス)
×

より詳しい機能詳細に関しては、SAKURA Internet : レンタルサーバの機能詳細 : ウェブ機能にのっています。

ライトプランは安いですが、安い分だけのことはあります(笑)。
MySQLの他、予約投稿に必要なCRONが使えません。
また、一番痛いのはエイリアスが使えないことです。

ドメインの表示設定が「エイリアス」の場合。
http://syoboi.com/にアクセス → もちろんそのままのアドレスで表示されます。

ドメインの表示設定が「リダイレクト」の場合。
http://syoboi.com/にアクセス → http:// syoboi.sakura.ne.jp/syoboi/とかに転送されてしまう。

工 工 エ エ ェ ェ (´Д`) ェ ェ エ エ 工 工 という感じですね。
せっかく独自ドメインをとっても、リダイレクトではさびしいです。
そういうわけで、同じさくらインターネットでも、ライトプランはおすすめしません。

前置きだけで、もうおなか一杯というくらいに長くなりましたが、そろそろ本題に入ります(笑)。


ネット上にもさくらインターネットでMySQLを導入する話はたくさんありますが、この本がわかりかったので御紹介させて頂きます。他のカスタマイズもかなりわかりやすいです。3280円の価値は十分にありました(笑)。

ブログ簡単パワーアップMovable Typeスーパーカスタマイズテクニック ブログ簡単パワーアップMovable Typeスーパーカスタマイズテクニック
大筋は、この本の通りにやってみました。

まずは、さくらインターネットでMySQLの設定をします。
さくらインターネット 会員メニュー でログイン。


サービスご利用情報の中の「ご利用中のサービス一覧」をクリック。


サーバホスティング・接続サービスの「サーバ設定」をクリック。


アプリケーションの設定の「データベースの設定」をクリック。



データベースの(初期)設定画面が表示されます。接続用パスワードを入力して、「送信する」をクリックします。パスワードを忘れないようにおぼえときましょう。
データベースサーバに関してはよくわからないのですが、あたりはずれがあるようです。
さくらインターネット非公式FAQMySQLの項目を参考にされてみて下さい。
MTひよっこは、何も考えずにパスワードを入れて送信をクリックしたので、あたりはずれがあるとかまでは考えませんでしたが(笑)。


さて、ここから先はいばらの道です。下記のように書いてありますし。もちろん、MTひよっこも責任を負いかねます。自己責任でお願いします~。

・データベースや、管理ツールのご利用については、サポート外とさせていただいています。利用方法や仕組みなどを理解されていないお客様はご利用をお控えください。
・データの喪失・誤操作による問題などについては、さくらインターネットで責任を負いかねます。
・データベースは1サービスに付き1つまでご利用いただけます。複数ご利用いただくことはできません。


実はMovableTypeを使うための、さくらインターネットでのデータベースの設定は、これで終了なんです。
データベース ユーザ名 / データベース名
データベース サーバ
データベース 接続パスワード


MTを使うためだけなら、MySQLの設定ができていて、上記の項目がわかりさえすればいいのです。

ですが一応、管理ツール( phpMyAdmin )のバナーをクリックしてみます。
こういう画面が出て、phpMyAdminのログイン画面になります。

これを見てみると、LangageJapanese(ja-eucになっています。

うーん、MovableType3.2はそのままインストールすると、UTF-8なんですよね・・・。
もちろんMovableTypeは普通にインストールして、文字コードを変えたりするような気の利いたことはしていませんから(笑)、文字コードはUTF-8です。
よくわかりませんが、Japanese(ja-utf8に変更してみました。そして、ログイン。


ログインしてみると、phpMyAdminの管理画面になります。
もちろん、さっぱりわかりません(笑)。

一応、Langageは、Japanese(ja-utf8)になってるみたいです。



というわけで、MySQLの設定は終わったみたいなので、MovableTypeの設定へ行きます。

ですが、いきなりこのサイトでBerkeley DBからMySQLへの移行作業を行うのは、びびり症の私には無理です。
身分不相応ですがライセンスパックを持っておりますので(笑)、無料版のMovableType3.2をダウンロードしてきて、同じサーバーにMovableType3.2無料版をインストールして試してみました。

無料版のインストールが一通り終了したら、まずはFFFTPで、mt-config.cgiをダウンロード。


ワードパットで開いて、

### MySQL Configuration - Add the name of your database, username
# password and, optionally database host given to you by your web
# hosting provider.
#
# ObjectDriver DBI::mysql
# Database
# DBUser
# DBPassword
# DBHost localhost

これを以下のように変更します。

### MySQL Configuration - Add the name of your database, username
# password and, optionally database host given to you by your web
# hosting provider.
#
ObjectDriver DBI::mysql
Database syoboi
DBUser syoboi
DBPassword xxxxx
DBHost xxxxx.db.sakura.ne.jp

この部分の#をはずします。
DatabaseDBUserは、データベースの設定にある「データベース ユーザ名 / データベース名」です。syoboiの部分を自身のものに書き換えます。

DBPasswordはデータベースの設定にある「データベース 接続パスワード」です。
DBHostは、データベースの設定にある「データベース サーバ」です。 それぞれ、自分のものに書き換えます。

mt-config.cgiの編集が終わったら、上書き保存し、FFFTPで元の場所に上書きアップロードします。


そして、データベースをBerkeley DBからMySQLへ変換してくれるcgi、mt-db2sql.cgiを実行します。
実行と言っても、http://example.com/mt/mt-db2sql.cgiをブラウザで開くだけです。

http://example.com/の部分を自分がMovableType3.2をインストールしたフォルダに書き換え、いざ、実行!


ログがずらずらと表示されて・・・あ、あれ?あっさり終了!?。

いくつかのサイトで目にした「トラックバックの文字化け」などもありません。
拍子抜けするほどあっさりいってしまいました。

phpMyAdminの管理画面で、LangageはをJapanese(ja-utf8)にしたのが良かったのでしょうか?
あとは、FFFTPで、mt-config.cgiをダウンロード。
ワードパットで開いて、

### BerkeleyDB Configuration - BerekelyDB requires only the path to your
# database directory.
#
DataSource /home/xxxxx/www/xxx/mt/db
#

の部分を、
### BerkeleyDB Configuration - BerekelyDB requires only the path to your
# database directory.
#
#DataSource /home/xxxxx/www/xxx/mt/db
#

コメントアウトして、上書き保存。そして、FFFTPで、mt-config.cgiを上書きアップロード。
不要になったdbフォルダを削除すれば終了です。dbフォルダを消すのは怖いですので、消さないかもしれませんが(笑)。
さくらインターネットのスタンダードプランで、MovableType3.2のデータベースをBerkeleyDBからMySQLへ移行する方法は以上です。


---------------------------------------------
<おまけ>

あー、めでたしめでたし。
と思っていたら、このサイトはMySQLになっていません。
データベースがMySQLになったのはおためしのサイト。
しかもさくらインターネットではひとつのサーバーで、ひとつしかMySQLが使えません。

そういうわけで、今度はこのサイトのMySQLへの移行を実際にやってみます。

まずはおためしサイトのデータベースをBerkeleyDBに戻します。
FFFTPで、mt-config.cgiをダウンロード。
ワードパットで開いて、

### MySQL Configuration - Add the name of your database, username
# password and, optionally database host given to you by your web
# hosting provider.
#
# ObjectDriver DBI::mysql
# Database syoboi
# DBUser syoboi
# DBPassword xxxxx
# DBHost xxxxx.db.sakura.ne.jp

さっきとは逆にMySQLの部分をコメントアウトし、

### BerkeleyDB Configuration - BerekelyDB requires only the path to your
# database directory.
#
DataSource /home/xxxxx/www/xxx/mt/db
#

さっきとは逆に、BerkeleyDBの#をはずします。
書き換えたmt-config.cgiを上書き保存。そして、FFFTPで、mt-config.cgiを上書きアップロード。
一応MovableTypeの管理画面にログインし、動いているか確認します。

次に、おためしサイトのデータで一杯になったMySQLのデータを削除しました。

phpMyAdminの管理画面を開くと、データが18個もできていました。

mt_author
mt_blog
mt_category
などなど。

mt_authorをクリックすると、画面右上に「削除」と出ます。これをクリックして項目を削除。

これを18回繰り返します(笑)。


きれいさっぱりデータがなくなります。
この方法は、さくらインターネットのマニュアルにも載っています。
データベースからテーブルを削除する


移行を失敗したときなどには必要かもしれませんが、うまくいった時に決してやらないで下さい。データが消えちゃいます。

最後に、おためしサイトと同じ要領で、このサイトをMySQLに移行しました。
mt-db2sql.cgiを実行するとさっきの倍以上時間がかかり、かなり不安でしたが、なんとかうまくいったみたいです。


記念に「すべてを再構築」してみましたが、以前より遅くなっていました・・・orz。

・・・ま、まあ、いいでしょう。キ、キレてないっすよ。
一応、以上でたぶん無事に移行終了です(^^;


さくらインターネット、いいかもと思われた方は、お試しあれ~。


追記: MTひよっこは、MT3.2-ja-2を使ってます。
よく見たら、こんな記事がありましたよ。
Movable Type 3.2日本語版 Release-2 の提供を開始

大変お待たせいたしました。本日より、Movable Type 3.2日本語版 Release-2 (以下、3.2-ja-2と称します。) の提供を開始いたします。

3.2-ja-2は、10月5日にご案内しましたBerkeley DBの環境下での3.2の不具合を修正したものです。加えて、recently_commented_onの処理を見直し、パフォーマンスが低下していた現象を修正しています。
既にMovable Type 3.2日本語版を導入されている方は、大変恐縮ですが、最新版の3.2-ja-2をダウンロード願います。

変更点は、次の通りです。

Berkeley DB環境にて、エントリーの投稿を行うと MTEntryNextなどのナビゲートリンクが消える不具合を修正しました。(ooba, ogawa)
Berkeley DB環境にて、再構築時におけるメモリー使用量の増加により、再構築できない現象が発生する不具合を修正しました。(ogawa)
recently_commented_onの処理により、パフォーマンスが低下する現象を修正しました。

移行しなくて良かったかも・・・orz。


@ 2006年02月15日