Movable Type で 「エラーが発生しました」 と表示されてログインできなくなった場合の対処

ある日、いつも通り Movable Type にログインしようとしたら 「エラーが発生しました」 と表示されてログインできなくなる症状に関して、解決方法をメモ。

Movable Type 6たまにあるみたいなんですけども、解決策に関して日本語での情報がほとんどなかったので書いておこうと思います。

ここでいうログインエラーというのは、パスワード忘れたとか、アカウント名が間違っていて 「正常に」 ログインをはねられる状況ではなくて、正しい情報でログインしようとしても 「Cannot find column 'blogs' for class 'MT::Blog'」 のような DB エラーが表示されてログインできなくなる症状のこと。

実際にこのエラーが発生すると下記のような画面がでます。エラーの内容は微妙に異なる場合もあるみたいですが。

Movable Type で 「エラーが発生しました」 と表示されてログインできなくなった例

複数のアカウントが登録されている場合は、この症状が出たアカウントとは別のアカウントは正常にログインできるので、管理権限を持ったアカウントが複数あればなんとかなるけど、そうでない場合はお手上げ状態になるケースもあります。

ちなみに、上記キャプチャは最新の 6.0.2 で発生したときのもの。案件で Movable Type いじってるときにこの症状がでてログインできなくなってしまったので調べてみました。

で、同様の症状と、解決策は下記のページあたりに載ってました。ただし、ログイン必須で英語です。

相談している人の書き込みを引用すると下記のような感じ。

After an upgrade to MT5.12 (from 5.11), we get the following error right after the login screen:

Cannot find column 'blogs' for class 'MT::Blog'

This manifests itself on all user accounts, except for the first administrator account (in other words, the account created during the initial installation is the only one that can successfully login without triggering this error, others can't even if they have the 'System administrator' privilege).

Removing all plugins and addons do not solve this problem.

This currently prevents us to use our system.

106376: Cannot find column 'blogs' for class 'MT::Blog' after upgrade to MT5.12 : FogBugz から引用

2011年の投稿ですので、Movable Type のバージョンが 5.12 ですが、出ている症状は同じです。「バージョンアップしたらログインできなくなったんだけど助けて」 っていう内容ですね。

で、日本語で検索した限りの情報だと一旦 Movable Type をリセットするだの、あきらめてやり直し的なことを書いている人が多かったのですが、そこまでやらなくても DB 内の特定のレコードを削除するだけで解決できます。

答えは上記 FogBugz の投稿に寄せられた返信にありました。

Once 'favorite_blogs' and 'favorite_websites' are deleted, the author can log in again.

「favorite_blogs」 と 「favorite_websites」 を削除してみな、ログインできるようになるよ。という書き込みと、それに続いて、

To be more precise, this is ONLY the 'favorite_websites' record above that causes an issue, not 'favorite_blogs'.

「favorite_websites」 が犯人だから、こいつを一旦削除すればいいよ。という感じ。

で、問題の 「favorite_websites」 に該当するデータですが、 「mt_author_meta」 テーブル内に入っています。

「author_meta_type」 カラムの値が 「favorite_websites」 になっているレコードを、コマンドラインでも phpMyAdmin でもいいので、一旦すべて削除してあげると、無事ログインできるようになります。

もし、同じような症状でお困りの際は試してみてください。

記事をここまで御覧頂きありがとうございます。
この記事が気に入ったらサポートしてみませんか?