RDS アップグレード時の「Current Option Group (xxxxxxxxx) is non-default.」エラーの解消法

2023.12.18

この記事は アノテーション株式会社 AWS Technical Support Advent Calendar 2023 | Advent Calendar 2023 - Qiita 18日目の記事です。

困っていること

RDS for MySQL を 5.7 から 8.0 にアップグレードしたいのですが、以下のようなエラーが出て、できません。どうしたらいいですか?

パラメータグループのエラー

申し訳ありません。DB インスタンス xxxxxxxxx の変更のリクエストが失敗しました。
Current Parameter Group (xxxxxxxxx) is non-default. You need to explicitly specify a new Parameter Group in this case (default or custom)

オプショングループのエラー

申し訳ありません。DB インスタンス xxxxxxxxx の変更のリクエストが失敗しました。
Current Option Group (xxxxxxxxx) is non-default. You need to explicitly specify a new Option Group in this case (default or custom)

どう対応すればいいの?

エラーメッセージにある通り、アップグレード先バージョンのカスタムまたはデフォルトのグループを指定(無ければ新規作成)した上で、再度アップグレードをお試しください。事象が改善する可能性があります。

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


やってみた

以下、RDS for MySQL 5.7.37 の DB インスタンスがあります。パラメータグループおよびオプショングループはカスタムのものを使用しています。

バージョン 8.0.35 にアップグレードしようとすると、前述のパラメータグループのエラーが発生します。

確認すると、元々のパラメータグループには、カスタム、デフォルト共に MySQL 5.7 のものしか無かったため、以下のようにアップグレード先の MySQL 8.0 のカスタムパラメータグループを新規作成します。

新規作成したアップグレード先のカスタムパラメータグループを指定した上で、アップグレードを実行します。すると、今度はパラメータグループのエラーではなく、オプショングループのエラーが発生しました。

確認すると、オプショングループも MySQL 5.7 のものしかありませんでした。

そのため、以下のようにバージョン 8.0 用のオプショングループも新規作成します。余談ですが、カスタムオプショングループを作成すると、デフォルトのオプショングループも自動で新規作成されます。

新規作成したカスタムオプショングループを指定した上で、再びアップグレードしてみます。今回はエラーが出ません。

無事バージョン 8.0.35 へアップグレードできました。

参考資料