こんばんは、小寺です。RDSのバージョンアップデート対応を最近多くやられた方もいますよね。

今日は RDS for MySQL を 5.7.44 から 8.0.36 にアップグレードしたときのエラー対応について、お伝えします!

カスタムパラメータグループなどデフォルト以外のパラメータグループを使っている際に、以下エラーが表示されました。

DB インスタンスがカスタム DB パラメータグループに関連付けられている場合は、新しいメジャーバージョンと互換性のある既存の設定で新しい DB パラメータグループを作成します。 その新しい DB パラメータグループをテストインスタンスのアップグレード時に指定することで、アップグレードのテストでインスタンスが正常に機能することを確認できます。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL.html#USER_UpgradeDBInstance.MySQL.UpgradeTesting

新しいパラメーターグループを作っていてもエラーになっています・・・・。オプショングループも作成してみることにしました。

オプショングループを作成して、新しくMySQL8.0用のものを指定してアップグレードを適用します。

無事にアップグレードできました!

RDS側で互換性がある?ない?をどうやって判定しているのか?については、まずはパラメータグループを比較してみましょう。比較する方法については、 マネジメントコンソールからは[Parameter Groups] (パラメータグループ) を選んで、 [パラメータを比較]  で比較を行うことができます。

CLIからは以下のようなコマンドで確認が可能です。

aws rds describe-db-parameters --db-parameter-group-name INSERT-YOUR-PG-NAME-HERE --region INSERT-REGION-HERE

もし、パラメータをデフォルト値に戻したくなったら?すべてをデフォルトにリセットするか、もしくは互換性のある値に戻すこともできます。