BerkeleyDBからMySQLに移行

カテゴリ: データベース

サーバを移転してしばらくは良かったのですが、エントリの修正をしたときに「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を再度実行すれば無事に移行できます。

すべての作業の前にデータのバックアップを取っておいた方がいいのは言うまでもありません。

 
 

トラックバック(0)

このページにトラックバック&リンク

このエントリに関連する記事をブログに書いた方は、お氣軽にトラックバックしてください。
言及リンクは必須ではありませんが、このページの内容に関係のないトラックバックは削除します。

トラックバックURL:


CAPTCHA スパム防止のため、トラックバックURL末尾の XXXXXX 部分を上記画像の数字に置き換えてからご利用ください。お手数ですがご協力よろしくお願いいたします。

リンク用ソースコード:


このブログ記事を参照しているブログ一覧: BerkeleyDBからMySQLに移行

コメントをどうぞ

アイテム


カテゴリ

アーカイブ

   
OpenID対応しています OpenIDについて