- 2005年10月10日(月) 23:31
- MovableType
今日は午後からずっとMTのデータベースフォルダ(通常だと「DB」)の関係で色々行っておりました.
…いや今はまだ良いのですが,今後エントリ数が増えていくにつれデータベースの管理もサーバ上でやっている状況では,再構築もエントリの登録も遅くなってしまう状況になるのと,今のサーバ容量(1GB)が保たなくなる可能性も考え,データベースをMySQLに移行しようと考えました.
実は,俺が利用しているさくらインターネットのレンタルサーバ(スタンダードプラン)には,MySQLがちゃんと使えるようになっていて,しかも容量の制限無し,当然サーバの容量にも入らないんですよ(※1).当然これは使うしかない!ってなりますよね(ぉ
そんなわけで早速MySQLへ移行作業開始…って,変更作業自体は色々検索して事前に調べておいたので分かっていたんだけど,その通りにやったらデータの移行は出来たものの,mt.cgiにアクセスすると自分のIDやパスワードがすっかりなくなっているじゃありませんか(^^;
いや,元のデータベース用フォルダは残していたので,復帰は全く問題なくできたのですが,これじゃ何のために苦労したのかわからんし…ってなことで,先日来色んなコミュニティを徘徊している(苦笑)mixiのMTのコミュニティ掲示板で投げかけてみることに.
そして数分後…返事がありまして,その通りにやってみたらあっさり解決しましたよ.さすがMTの猛者(?)が集うコミュニティだけあります.
で,改めて手順を覚え書きしておきます.なお,作業をする前にdbフォルダをバックアップしておいた方が良いと思います.
レンタルサーバのMySQLに登録,データベースがあるのを phpMyAdminで確認する.
mt-config.cgiの,MySQL関係の設定部分(コメントアウトされている筈です)を有効にし,自分用に編集する.具体的にはmt-config.cgiの35行目付近にある…
# ObjectDriver DBI::mysql # Database <database-name> # DBUser <database-username> # DBPassword <database-password> # DBHost localhostこの部分の#を全て削り編集する.なお,Database と DBUser には自分のアカウント名が入る(例:
Database hashim等).DBPassword はMySQL設定時のパスワードを,DBHost には,MySQLのドメインサーバを書く(例:
DBHost mysql.db.sakura.ne.jp等).ここで注意しなければならないのは,72行目付近にある…
DataSource ./dbの部分は一切弄らないこと.俺はこれでハマったらしい(^^;
FFFTPでmt-config.cgiをアップロード.
ブラウザでmt-db2sql.cgiにアクセスし,BerkeleyDBからMySQLへデータを移行(アクセスと同時に勝手にやってくれる).「Done copying data from Berkeley DB to your SQL database! All went well.」と出れば移行完了.
ブラウザでmt.cgiにアクセスし,念のため再構築をしておく.
要するに,データベースの移行が出来ているように見えて,実は出来ていなかったというアホなことが原因だったらしいですね.もっと修行します(ぉぃ
- 2005-10-11 20:00追記
後でmt-db2sql.cgiのソースを見てみたのですが,どうもBerkeleyDBのフォルダをmt-config.cgiから読みとったうえで,MySQLに転送していると思われる部分がありました.なので,2番目の項目でBerkeleyDBの部分をコメントアウトするとパスワードの転送がうまく行かず,最終的にmt.cgi上で「IDもパスワードもないんじゃ~おりゃ~(大意)」ってなことになるということです(^^;
最後の再構築がうまく行けば,mt-config.cgiのBerkeleyDBの部分はコメントアウトし,dbフォルダを削除しても問題ありませんので念のため追記しておきます.俺の場合は,念には念を入れて新規エントリーを追加した後,phpMyAdminでMySQL側にデータが追加されたのを確認してから,dbフォルダを削除しています(すげ~慎重だな(ぉぃ).
