エアコンくさい!!自分でやれば1,300円!
においとカビがひどいエアコンを掃除してみた結果…。→ 詳しくはこちら
スポンサーリンク

再構築時にエラーが...Berkeley DBからSQLiteに移行

  • 公開日:
  • 最終更新日:
  • by
  • Web制作

SQLiteロゴ

先日の出来事。

エントリー書き込んだ後、いつも通りサイトを再構築していると見慣れない画面が!?

Internal Server Errorと表示され、何度やっても同じような500エラーが出てしまう。

契約しているさくらのレンタルサーバ プレミアムがメンテナンスでもやってるのかと思って、時間をおいてもう一度再構築してみたものの変化なし。

PR【今なら3か月無料】Amazon Music Unlimitedが最初の3か月無料で音楽聴き放題! 通常1か月無料→今だけ3か月無料!解約も簡単なのでまずはお試しください。10/15まで
スポンサーリンク

Berkeley DB環境のエラーが発生

何かMovableTypeの問題かな?といろいろググってみると、Six Apartにこんな記事がありました。

Berkeley DB環境にて、再構築時におけるメモリー使用量の増加により、再構築できない現象が発生する不具合を修正しました。(ogawa)

Movable Type 3.2日本語版 Release-2 の提供を開始 | Movable Type ニュース

どうもBerkeley DB環境にて、再構築時におけるメモリー使用量の増加により、再構築できない現象が発生するみたい。でもこの記事によると、MT3.2-ja-2ではこの不具合の修正が完了してるはずなのに。。。

さらにググってみると、この不具合を解消するには、再構築時のページ数を減らしたり、rebuild 支援ツールを使ったりといくつか方法があるようなんですが、根本から解決したかったので、この際データベースを移行することにしました。

Berkeley DBからSQLiteに移行する方法

以前から再構築の時間が遅くてイライラしていたこともあり、SQLiteに移行することに。MySQLでもよかったんですが、MySQLに移行してもそんなに再構築のスピードが変わらない、または逆に遅くなることもあるらしいので...。

移行の際は、Ogawa::Memorandaさんの「mt-db-convert.cgi: MTデータベースの相互変換CGIスクリプト(2020.2.7追記:リンク切れのためリンクを削除しました)」を利用させていただきました。備忘録として手順を記載しておきます(さくらインターネットの場合です)。

1.mt-db-convert.cgiをダウンロードし、mt.cgiと同じ階層にアップロード。

2.mt-db-convert.cgiのパーミッションを755に。

3.ブラウザでmt-db-convert.cgiを実行。

4.左側の「Source DB Configuration」は現在の設定なので何もさわりません。
右側の「Destination DB Configuration」で、一番上のObjectDriverをSQLiteに。上から3番目のDatabaseを、左側のDataSource「-------/db」の階層内にデータファイルを作成する(ご自分の環境に合わせてください)ので、「-------/db/sqlite.db」と記入。convertをクリック。

5.mt-db-convert.cgiが実行され、
Done copying data from DBI::mysql to DBI::sqlite! All went well.
と表示されれば成功。その下にmt-config.cgiの変更箇所が表示されるので、その通りにmt-config.cgiの内容を変更すれば終了。

無事サイトの再構築が終了してくれました。なんとなくBerkeley DBの時より早くなった気がします。思ったより簡単に終わったのでちょっと拍子抜け。


追記:SQLite移行によるtagsのNotFoundについて
SQLite移行後のエントリーで、エントリー上部に設定したキーワードをクリックすると、NotFoundになってた。データベースのパス関係かなと思っていたら、mt-xsearch.cgiの27行目に'mt.cfg'のファイル名が。???MT3.2に移行後、このファイルはmt-config.cgiに変わっているので、これをmt-config.cgiに書き換えてあげればOK。

スポンサーリンク

この記事をシェアする

記事についてのご感想・ご質問、受付中!

分かりやすい記事になるように努めてますが、「こういうことを知りたかった」「ここについてもうちょっと詳しく教えて」など、当記事について質問や知りたいことがあれば以下のツイートボタンからお気軽にお送りください。自動的に記事URLが入りますのでそのまま質問内容を最上部に記入してください。できるだけ早く返信させていただきます(質問が多い場合はお時間をいただくことがあります)。

ご質問は無料。質問はもちろん、「役に立った!」「面白かった!」など、お褒めの言葉だともっとうれしいです!

記事を少しでもより良いものにするためにご協力をお願いいたします。

このブログ「スーログ」を購読する

この記事が気に入ったら
「いいね!」しよう。
最新記事をお届けします。

● 最新記事をRSSで配信中です。feedlyへの登録はこちらから。

twitterでの情報発信、YouTubeで動画レビューも公開してます。チャンネル登録もよろしく!