聴き放題 4か月無料!
1億曲以上が聴き放題のAmazon Music Unlimitedが期間限定で通常1か月無料→3か月無料に!1/11まで
読み放題 3か月99円!
200万冊以上が読み放題のKindle Unlimitedが期間限定で3か月2,940円→99円!12/1まで

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

  • 公開日:
  • 最終更新日:
  • by
  • MTカスタマイズ

先日の出来事。

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

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

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

PR【今年最後の超大セール】Amazonブラックフライデーセール開催中! 人気商品は早い者勝ち!セール品はもちろんセール対象外でも期間中合計1万円以上のお買い物を対象に最大11%ポイント還元。11/25 0:00〜12/1 23:59まで
スポンサーリンク

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

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

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

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

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

以前から再構築の時間が遅くてイライラしていたこともあり、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で動画レビューも公開してます。チャンネル登録もよろしく!