Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Amazon RDS for MySQL DB インスタンスでアップグレード前チェックの不合格を解決する方法を教えてください。
Amazon Relational Database Service (Amazon RDS) for MySQL DB インスタンスのアップグレードを試みたところ、アップグレード前チェックに合格できないため、解決したいと考えています。
簡単な説明
Amazon RDS と Amazon Aurora MySQL 互換エディションは、自動事前チェック機能により、バージョンアップグレード中の予期しないダウンタイムを最小化します。MySQL バージョンを 5.7 から 8.0、または 8.0 から 8.4 にアップグレードする際、この事前チェックは、アップグレードに影響する可能性がある非互換性を検出します。DB インスタンスの事前アップグレードチェックに合格できない場合、Amazon RDS for MySQL のバージョンアップグレードは停止します。次に、Amazon RDS は、事前チェック不合格に関する詳細をログファイル PrePatchCompatibility に記録します。
Amazon RDS コンソールの [ログとイベント] に表示されるログファイルを参照し、問題を特定、修正します。
MySQL の事前チェックについては、MySQL のウェブサイトで「アップグレードチェッカユーティリティ」を参照してください。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
事前アップグレードチェックのエラーメッセージを確認する
ログファイルを確認するには、次の手順を実行します。
- Amazon RDS コンソールを開きます。
- ナビゲーションペインで [データベース] を選択し、アップグレードを試行するデータベースを選択します。
- [ログとイベント] タブを選択し、[最近のイベント] で PrePatchCompatibility を検索します。
- ログファイル PrePatchCompatibility をレビューし、問題を解決します。
注: 多くの場合、ログエントリには、非互換性の問題を解決する方法に関する Amazon RDS for MySQL 文書へのリンクが表示されています。
メッセージに特定のエラー、警告、通知レベルのメッセージが含まれているかどうかを確認する
ログファイル PrePatchCompatibility 内に、次のいずれかの事前チェックに関するメッセージが表示される場合があります。
- "Usage of old temporal type : ERROR" (古い時間型が使用されています)
- "Usage of db objects with names conflicting with new reserved keywords : WARNING" (オブジェクト名が新しい予約済みキーワードと競合しています)
- "Usage of utf8mb3 charset : NOTICE" (文字コードに utf8mb3 が使用されています)
- "Table names in the mysql schema conflicting with new tables in 8.0 : ERROR" (mysql のテーブル名が 8.0 での新しいテーブル名と競合しています)
- "Partitioned tables using engines with non native partitioning : ERROR" (分割テーブルが非ネイティブパーティションを使用するエンジンを使用しています)
- "Foreign key constraint names longer than 64 characters : ERROR" (外部キー制約名が 64 文字を超過しています)
- "Usage of obsolete MAXDB sql_mode flag : WARNING" (廃止済みフラグが指定されています)
- "Usage of obsolete sql_mode flags : NOTICE" (廃止済みフラグが指定されています)
- "ENUM/SET column definitions containing elements longer than 255 characters : ERROR" (列の定義内の要素が 255 文字を超過しています)
- "Usage of partitioned tables in shared tablespaces : ERROR" (共有表領域で分割テーブルが使用されています)
- "Circular directory references in tablespace data file paths : ERROR" (表領域のデータファイルパスで循環ディレクトリ参照が行われています)
- "Usage of removed functions : ERROR" (削除された関数が使用されています)
- "Usage of removed GROUP BY ASC/DESC syntax : ERROR" (削除された構文が使用されています)
- "Removed system variables for error logging to the system log configuration : ERROR" (システムログに対するエラーログ設定に、削除されたシステム変数が使用されています)
- "Removed system variables : ERROR" (削除されたシステム変数が使用されています)
- "System variables with new default values : WARNING" (システム変数に新しいデフォルト値が設定されています)
- "Schema inconsistencies resulting from file removal or corruption : ERROR" (ファイル削除または破損によるスキーマ不整合)
- "Issues reported by 'check table x for upgrade' command : ERROR or WARNING or NOTICE" (コマンドから問題が報告されました)
- "The definer column for mysql.events cannot be null or blank. : ERROR" (definer 列は null または空にすることができません)
- "Tables with dangling FULLTEXT index reference : ERROR" (テーブルにインデックスのダングリング参照が含まれています)
- "Routines with deprecated keywords in definition : ERROR" (ルーチンの定義に廃止されたキーワードが含まれています)
- "DB instance must have enough free disk space : ERROR" (DB インスタンスの空き容量を確保してください)
- "Creating indexes larger than 767 bytes on tables with redundant row format might cause the tables to be inaccessible. : WARNING" (REDUNDANT 行フォーマットで文字長 767 バイトを超過するインデックスをテーブルに作成すると、テーブルにアクセスできなくなる可能性があります)
- "The tables with redundant row format can't have an index larger than 767 bytes. : ERROR" (REDUNDANT 行フォーマットでは、767 バイトを超えるインデックスは許容されません)
- "Column definition mismatch between InnoDB Data Dictionary and actual table definition. : ERROR" (列定義が InnoDB Data Dictionary とテーブル定義で整合しません)
ERROR メッセージが表示される場合は、アップグレード試行の前にエラーを修正します。WARNING メッセージが表示される場合は、Amazon RDS では致命的なエラーは検出されなかったものの、潜在的なエラーが検出されたことを示します。
NOTICE メッセージが表示される場合は、Amazon RDS では互換性に関する既知のエラーまたは問題は検出されませんでした。ただし、エラーログ内の NOTICE を確認することをおすすめします。
ログファイルの一覧表示、データのダウンロード
ログファイルの一覧表示およびデータのダウンロードには、次の手順を実行します。
-
AWS CLI コマンド describe-db-log-files を実行すると、ログファイルが一覧表示されます。
aws rds describe-db-log-files --db-instance-identifier DB_identifier --query '*[].[LogFileName]' --output text注: DB_identifier をログファイルが配置されたデータベース名に置き換えてください。
出力例:[root@ip-x-x-x-x ec2-user]# aws rds describe-db-log-files --db-instance-identifier testinstance --query '*[].[LogFileName]' --output text PrePatchCompatibility.log error/mysql-error.log error/mysql-error-running.log error/mysql-error-running.log.2023-05-06.3 error/mysql-error-running.log.2023-05-09.4 error/mysql-error-running.log.2023-05-10.3 error/mysql-error-running.log.2023-05-12.19 mysqlUpgrade -
特定のログファイルをダウンロードするには、download-db-log-file-portion コマンドを実行します。
aws rds download-db-log-file-portion --db-instance-identifier DB_identifier \--log-file-name PrePatchCompatibility.log --starting-token 0 \--output text > <LogFileName to save a copy>注: DB_identifier をログファイルが配置されたデータベース名に置き換えてください。
出力例:aws rds download-db-log-file-portion --db-instance-identifier testinstance \ --log-file-name PrePatchCompatibility.log --starting-token 0 \ --output text > PrePatchCompatibilityCopy.log
関連情報
MySQL 8.0 へのアップグレード に関する考慮事項 (MySQL のウェブサイト)
アップグレードに向けたインストールの準備 (MySQL のウェブサイト)
関連するコンテンツ
- 質問済み 9ヶ月前
