Movable Type 6.1.1を6.3.2にバージョンアップした

先週の日曜日、私が個人的に利用しているMovable Type 6.1.1を6.3.2にバージョンアップした。
バージョンアップ途中でデータベースエラーでバージョンアップが失敗した時にはどうしようかと思ったが、何とかその失敗も解決して無事にバージョンアップが終わった。

以下に、作業のメモを記載しておく。

1.現在利用しているMovable Type関連ファイル一式をバックアップ
私の場合は、レンタルサーバ(XREA)のMovable TypeインストールフォルダからMovable Type関連ファイル一式を全て私のノートPCにFTPでダウンロードした。

2.現在利用しているMovable Typeのデータベースをバックアップ
本来は、MySQLのダンプコマンドでデータベースをダンプした方が良いが、自分のブログのバックアップ作業は少しでも手を抜きたかったので、最低限のバックアップとして、Movable Typeの画面内で「ツール」>「記事のエクスポート」から、テキストファイルでブログ記事一式をダウンロードするだけにした。

3.最新版Movable Typeのファイル一式の入手
ダウンロードファイルは、いつもの通り、Movable Typeの制作会社「シックス・アパート社」のサイトからダウンロード。
ダウンロードしたZIPファイルは、解凍ソフトでWindowsマシン内で解凍。

4.最新版Movable Typeのファイルを上書きアップロード
解凍した最新版Movable Typeのファイル一式をFTPソフトでレンタルサーバ(XREA)に上書き適用。
この後、最新版Movable Typeのmt-config.cgi-originalの中身と既存のmt-config.cgiの中身を見比べ、変更すべき点がないかどうかを確認。
特に大きな相違点はなかったけれど、既存のmt-config.cgiは私個人のゴミ記述などが残っていたり、英文のコメントの相違点が気になったので、最新のmt-config.cgi-originalの内容に合わせてmt-config.cgiを修正した。
英文の相違点は、かなり昔の時代のmt-config.cgiの内容をこれまでのファイルに私が残してきたからであろうと思う。

5.ブラウザでアクセスし、バージョンアップ開始
Movable Typeにログインするための画面(mt.cgi)にブラウザでアクセスする。
ブラウザは私の大好きなInternet Explorer 11を利用。
ブラウザには、以下のメッセージが表示されることを確認。

アップグレード開始
新しいバージョンの Movable Type をインストールしました。データベースのアップグレードを実行してください。
Movable Typeアップグレードガイドはこちらを参照ください。
加えて、以下のコンポーネントのアップグレード、またはインストールが必要です。
•MultiBlog バージョン 2.6
データベースをアップグレードしています・・・
•データベースをバージョン 6.0009から更新しています...
•プラグインデータのテーブルを更新しています...

このあたりまでは、何事もなく普通で、バージョンアップ作業が平和に終わると思っていた。
しかし、以下のようなエラーメッセージが表示されてしまい、バージョンアップ作業が途中で止まってしまった。

アップグレード中にエラーが発生しました failed to execute statement CREATE TABLE mt_plugindata ( plugindata_id integer NOT NULL PRIMARY KEY auto_increment, plugindata_data mediumblob, plugindata_key varchar(255) NOT NULL, plugindata_plugin varchar(50) NOT NULL ): Table './mydb1/mt_plugindata' is marked as crashed and last (automatic?) repair failed at lib/MT/Upgrade.pm line 838.

エラーメッセージの内容から推測すると、私が使用中のMovable Typeのデータベースのテーブル「mt_plugindata」が壊れているらしく、データベーステーブルが壊れていることが原因でMovable Typeのバージョンアップに失敗しているようであった。

Googleで解決方法を探していると、MySQLデータベーステーブルが壊れた時の復旧方法について解説してくれているブログがあったので、そのブログを参考にして復旧を行うことにした。

・参考にしたブログ:MySQL 破損したテーブルを復旧させる
 ※このブログのおかげで、壊れたデータベーステーブルの復旧を行うことができた。

Movable Typeのデータベーステーブル「mt_plugindata」が壊れていた問題についての対応は、Movable TypeのデータベースにTera Termでログイン後、以下の手順で行った(注:myusername=私のデータベースのユーザ名、mydb1=私のデータベース名)。

# mysql -umyusername mydb1 -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 64812 Server version: 5.6.22-log Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> check table mt_plugindata quick;
+---------------------+-------+----------+-------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------------------+-------+----------+-------------------------------------------------------+
| mydb1.mt_plugindata | check | warning | Table is marked as crashed and last repair failed |
| mydb1.mt_plugindata | check | warning | 1 client is using or hasn't closed the table properly |
| mydb1.mt_plugindata | check | warning | Size of indexfile is: 10240 Should be: 4096 |
| mydb1.mt_plugindata | check | error | Record-count is not ok; is 3 Should be: 0 |
| mydb1.mt_plugindata | check | warning | Found 256 deleted space. Should be 0 |
| mydb1.mt_plugindata | check | warning | Found 1 deleted blocks Should be: 0 |
| mydb1.mt_plugindata | check | warning | Found 4 key parts. Should be: 0 |
| mydb1.mt_plugindata | check | error | Corrupt |
+---------------------+-------+----------+-------------------------------------------------------+
8 rows in set (0.01 sec)

mysql> repair table mt_plugindata;
+---------------------+--------+----------+------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------------------+--------+----------+------------------------------------+
| mydb1.mt_plugindata | repair | warning | Number of rows changed from 0 to 3 |
| mydb1.mt_plugindata | repair | status | OK |
+---------------------+--------+----------+------------------------------------+
2 rows in set (0.04 sec)

mysql> check table mt_plugindata quick;
+---------------------+-------+----------+----------+
| Table | Op | Msg_type | Msg_text |
+---------------------+-------+----------+----------+
| mydb1.mt_plugindata | check | status | OK |
+---------------------+-------+----------+----------+
1 row in set (0.00 sec)

MySQLのrepairコマンドで壊れたテーブルを復旧することができて胸をなでおろした。
再度、mt.cgiをブラウザでアクセスすると、以下のメッセージが表示され、Movable Typeのバージョンアップ作業が無事に完了した。

アップグレードを完了しました!
•データベースをバージョン 6.0009から更新しています...
•アイテムのテーブルを更新しています...
•ジョブエラーのテーブルを更新しています...
•新しいテンプレートコメント一覧を作成しています...
•MTニュースのキャッシュを破棄しています...
•データベースをバージョン6.0010にアップグレードしました。
•プラグイン'MultiBlog'をバージョン2.6 (スキーマバージョン2.6)にアップグレードしました。


《Movable Typeログイン後のフッター部の表記-バージョンアップ前》
Copyright © 2001 Six Apart. All Rights Reserved.
Movable Type Pro version 6.1.1 with: Professional Pack 1.91

《Movable Typeログイン後のフッター部の表記-バージョンアップ後》
Copyright © 2001 Six Apart. All Rights Reserved.
Movable Type Pro version 6.3.2 with: Community Pack 2.14, Professional Pack 1.96

Movable Typeをバージョンアップするたびに何かが起きているけれど、今回も何とか無事にバージョンアップができて良かった。

この記事のメインカテゴリ:
SNS:
この記事に付けられているタグ: Movable Type