Home > PC > MovableType、エラー対策。(2019/06)

MovableType、エラー対策。(2019/06)

  • Posted by: おりおん
  • PC

このブログは開設当初からMovableTypeにて運用しているのだが、Movable Typeのアップデート時に実行されることがあるデータベースのアップデートの際にエラーが出て失敗することがあり、強引な方法(アップデート時のエラーを無視するようにMovableType内のパッケージファイルを書き換える)で回避していた。少し前に公開されていたVersion 7.1.2へのアップデート時にデータベースのアップデートが行われ、その際にもエラーが出たので、何とかエラーが出なくなるようにできないか調査することにした。

エラーの内容は、具体的に言うとデータベースのアップデート時に「mt_failedloginテーブルを作れない」という状況である。MySQL(MariaDB)内のMovable Type用のデータベース内に含まれるテーブル一覧を確認するとmt_failedloginテーブルは存在していなかったので、直接MySQLのコマンドを実行してmt_failedloginテーブルを作成しようとしても失敗してしまった。その上、mt_failedloginテーブルを削除しようとしても削除できない、という気持ち悪い状況になっていた。何らかの原因で、データベース内のmt_failedloginテーブルに関する情報が壊れている気配であった。Movable Typeのデータベースが格納されているフォルダを確認してみたところ、正常なテーブルではテーブル名に対応した *.frmファイルが存在しているのだが、mt_failedlogin.ibdファイルは存在するものの、mt_failedlogin.frmファイルは存在していなかった。この、mt_failedlogin.frmが存在しない状況がまずいのではないかと考え、ファイルの再生成ができないか試してみることにした。

まず最初に試したのは、Movable Typeのデータベースの再生成である。一旦Movable Typeのデータベースをバックアップし、それから、そのデータベースに対応するフォルダをリネームしてMySQLから見えないようにし、データベースをリストアしてみた。結果は、失敗。まだ、mt_failedloginテーブルの生成も削除もできない状況のままであった。

次に試したのは、MySQLのデータベース全体のバックアップとリストアである。一旦、全データベースのバックアップを行ったのだが、この際にエラーが出て失敗してしまったので、エラーを無視してバックアップを行うようにした。その後で、MySQLのデータフォルダ自体をリネームし、MySQLの全データベースをリストア。これで、mt_failedlogin.frmファイルも生成されていて、一見すると上手くいったように見えたのだが、Movable Typeのダッシュボード経由で記事一覧を確認してみたところ、投稿日時情報が破損してしまったようで、日時がぐちゃぐちゃになってしまっていた。

上の二つの方法がいずれも失敗してしまったため、一旦、MySQLのデータベースフォルダ自体をデイリーバックアップ側のフォルダからコピーして元に戻し、その上で、前回の作業で生成されていたmt_failedlogin.frmファイルをコピーしてみることにした。この作業の結果、Movable Typeのデータベース内のテーブル一覧にもmt_failedloginテーブルが現れ、Movable Typeのダッシュボード経由で確認する限り投稿日時情報も正常に戻っていた。これで、一見すると上手くいっているように見えているが、現時点では正常かどうかの確認はまだ取れていない。次回のデータベースアップデート時に確認できるはずなので、とりあえず、この状態で様子を見る予定。

Comments:0

コメントする

Home > PC > MovableType、エラー対策。(2019/06)

Search

Feeds

Return to page top