サーバを移転してしばらくは良かったのですが、エントリの修正をしたときに「Error 500 Internal Server Error」が出るようになりました。
サポートにメールで問い合わせたところBerkeleyDBを使用していて、エントリの数が多いとそういう状況になることがあるそうです。
エントリの数はまだ10以下で、とても多いとは思えませんが、BerkeleyDBを使用していることは間違いありませんので、サポートの回答通りMySQLにデータベースを移行することにしました。
以下はその移行手順です。
1.MySQLのデータベースを作成
データベースを移行する前に必ずデータベースを作成しておく必要があります。データベースの作成方法はレンタルサーバによって様々だと思いますが、私の契約しているレンタルサーバは管理ツールとしてphpMyAdminが提供されています。 このときに設定するDBname、DBuser、DBpasswordとDBhostが後の設定で必要になります。2.mt-config.cgiの書き換え(ver.3.1まではmt.cfg)
テキストエディタでファイルを開き下記の場所を探します。# ObjectDriver DBI::mysql
# Database <database-name>
# DBUser <database-username>
# DBPassword <database-password>
# DBHost localhost
先程、設定したDBname、DBuser、DBpasswordとDBhostを上書きして、各行の一番左の#を削除します。
3.mt-db2sql.cgiの実行
ブラウザからmt-db2sql.cgiにアクセスします。 ページの一番下にこのような文章が出れば完了です。Done copying data from Berkeley DB to SQL database! All went well.
4.その後
必要な手順かどうかわかりませんが、dbフォルダはサーバから削除してしまいました。 もちろん、ダウンロードして保存はしてありますが。 そして、mt-config.cgiを再度書き換えました。 具体的にはBerkeleyDBのデータソースの設定の部分をコメントアウト(行の先頭に#をつける)しました。
3の手順を実行する前にBerkeleyDBのデータソースをコメントアウトしてしまうと、blogが初期化された状態になってしまいます。もちろん、データ自体は残っているので、BerkeleyDBのデータソースを指定した状態でmt-db2sql.cgiを再度実行すれば無事に移行できます。
すべての作業の前にデータのバックアップを取っておいた方がいいのは言うまでもありません。
コメントをどうぞ