MySQL 5.6 から MySQL 5.5 にダウングレードする場合、MySQL 5.5 とは異なる MySQL 5.6 の動作または機能に関係する次の問題に注意してください。
システムテーブル
MySQL 5.6 の
mysql.user
テーブルにはpassword_expired
カラムがあります。MySQL 5.5 のmysql.user
テーブルにはありません。これは、MySQL 5.6 でパスワードが期限切れになっているアカウントは MySQL 5.5 では正常に機能しないことを意味します。
データ型
TIME
、DATETIME
、およびTIMESTAMP
カラムについては、MySQL 5.6.4 より前に作成されたテーブルに必要なストレージは、5.6.4 以降で作成されたテーブルに必要なストレージとは異なります。これは、5.6.4 で、これらの時間型が少数部を持つことを許可するように変更されたためです。5.6.4 より前のバージョンにダウングレードする場合は、ダウングレードする前に mysqldump を使用して影響されるテーブルをダンプし、ダウングレード後にテーブルをリロードします。
InnoDB
InnoDB
検索インデックス (型がFULLTEXT
のもの) は MySQL 5.6.4 で導入され、5.6 シリーズの以前のリリースを含む、MySQL の以前のバージョンとは互換性がありません。ダウングレードを実行する前に、このようなインデックスは削除します。innodb_page_size
構成オプションで指定されるInnoDB
の小さいページサイズは MySQL 5.6.4 で導入され、5.6 シリーズの以前のリリースを含む、MySQL の以前のバージョンとは互換性がありません。小さいInnoDB
ページサイズを使用するインスタンス内のすべてのInnoDB
テーブルをダンプし、テーブルを削除し、ダウングレード後に再作成してリロードします。
レプリケーション
MySQL 5.6 では、
relay-log.info
ファイルは行カウントおよびレプリケーション遅延値を含むため、古いバージョンとはファイル形式が異なります。セクション17.2.2.2「スレーブステータスログ」を参照してください。スレーブサーバーを MySQL 5.6 より前のバージョンにダウングレードすると、古いサーバーはファイルを正しく読み取りません。これに対処するには、テキストエディタでファイルを変更し、行数を含む最初の行を削除します。MySQL 5.6.6 より、MySQL Server はバイナリログへの書き込みに Version 2 バイナリログイベントを使用します。Version 2 ログイベントを使用して書き込まれたバイナリログは、前のバージョンの MySQL Server では読み取れません。古いサーバーが読み取ることができる、Version 1 ログイベントを使用して書き込まれたバイナリログを生成するには、MySQL 5.6.6 以降のサーバーを
--log-bin-use-v1-row-events=1
を使用して起動します。これは、バイナリログの書き込みに Version 1 イベントを使用することをサーバーに強制します。