このセクションでは、新しいバージョンよりも以前のバージョンの方がよく動作するというまれな場合のために、MySQL の古いバージョンにダウングレードする方法について説明します。
ダウングレードが失敗してインスタンスが不安定な状態になった場合に備えて、前もってバックアップを取るとよいでしょう。
同じリリースシリーズ内の一般提供 (GA) ステータスのバージョン間でダウングレードする場合は、通常は新しいバイナリを古いものの上にインストールするだけで、データベースには何も変更を加えません。
同じリリースシリーズ内のマイルストーンリリース間 (または GA リリースからマイルストーンリリースへ) のダウングレードはサポートされておらず、問題が発生する場合があります。
次の項目は、ダウングレードを実行する際に必ず行うことのチェックリストです。
ダウングレード元のリリースシリーズのアップグレードのセクションを読み、実際に必要な機能がないことを確認します。セクション2.11.1「MySQL のアップグレード」を参照してください。
そのバージョンのダウングレードのセクションがある場合は、それもお読みください。
ダウングレード先のバージョンと現在使用しているバージョンとの間で、どの新機能が追加されたかを確認するには、リリースノートを参照してください。
現在使用している MySQL のバージョンとダウングレード先のバージョンとの間でテーブルの形式または文字セットまたは照合順序に変更があったかどうかを、セクション2.11.3「テーブルまたはインデックスの再構築が必要かどうかのチェック」で確認してください。その場合、それらの変更により MySQL バージョン間に互換性の欠如が生じている場合は、セクション2.11.4「テーブルまたはインデックスの再作成または修復」の手順を使用して、影響されるテーブルをダウングレードすることが必要になります。
ほとんどの場合、MySQL の同じリリースシリーズのバージョン内にとどまっているかぎり、MySQL 形式のファイルおよびデータファイルは、同じアーキテクチャーの異なる GA バージョン間で移動できます。
1 つのリリースシリーズから別のリリースシリーズにダウングレードする場合、テーブルストレージフォーマットの互換性が取れなくなる場合があります。その場合は、ダウングレードする前に mysqldump を使用してテーブルをダンプします。ダウングレードしたら、mysql あるいは mysqlimport を使用してダンプファイルをロードし、テーブルを再作成します。参考例は、セクション2.11.5「MySQL データベースのほかのマシンへのコピー」を参照してください。
ダウンロードした際の、下位互換性のないテーブル形式の変更の一般的な現象は、テーブルを開くことができないことです。そのような場合には、次の手順に従います。
ダウングレード先の古い MySQL サーバーを停止します。
ダウングレード元の新しい MySQL Server を再起動します。
mysqldump を使用して、古いサーバーからアクセスできなかったテーブルをすべてダンプしてダンプファイルを作成します。
新しい MySQL Server を停止して古いサーバーを再起動します。
古いサーバーにダンプファイルをリロードします。これでテーブルにアクセスできるはずです。
mysql
データベース内のシステムテーブルが変更された場合は、ダウングレードによって一部の機能が失われたり、調整が必要になったりする場合があります。次にいくつかの例を示します。
MySQL 5.1 では、トリガー作成には
TRIGGER
権限が必要です。MySQL 5.0 では、TRIGGER
権限はなく、代わりにSUPER
が必要です。MySQL 5.1 から 5.0 にダウングレードする場合は、5.1 でTRIGGER
権限を持っていたアカウントにSUPER
権限を付与する必要があります。トリガーは MySQL 5.0 で追加されたため、5.0 から 4.1 にダウングレードする場合は、トリガーをまったく使用できません。
mysql.proc.comment
カラム定義は、MySQL 5.1 と 5.5 との間で変更されました。5.5 から 5.1 へのダウングレード後、このテーブルは壊れていて修復が必要であるとみなされます。この問題を回避するには、ダウングレード先の MySQL のバージョンから mysql_upgrade を実行します。