跳至內容

RDS MySQL 8.4 Upgrade - Current Parameter Group is non-default

0

I'm trying to upgrade my RDS MySQL instance from 8.0 to 8.4 as requested by AWS.

But it gives me the error - We're sorry, your request to modify DB instance nnnn has failed. Current Parameter Group (nnnn) is non-default. You need to explicitly specify a new Parameter Group in this case (default or custom).

I compared my parameter group with the default and the only differences are - character_set_client utf8mb4 character_set_server utf8mb4 collation_connection utf8mb4_0900_ai_ci collation_server utf8mb4_0900_ai_ci max_connections 1000 time_zone Australia/Brisbane

It's my understanding that we must be using the utf8mb4 collation in order to upgrade to MySQL 8.4 - and thus we have spent hours upgrading all of tables to the new collation. Having done that, we had to set the parameter groups to use this collation in order for our application to work.

So how does anyone perform this upgrade if you must use utf8mb4 and simultaneously you are not allowed to use utfmb4?

Also, we have to run our server in our time zone otherwise all of our dates will be wrong which would be a disaster, but I can't see how having your database set to the correct timezone could be a "problem" which prevents an upgrade?

Can anyone make this make sense to me please?

已提問 2 個月前檢視次數 243 次
2 個答案
0
已接受的答案

When upgrading from MySQL 8.0 to 8.4 in Amazon RDS, you're encountering an expected behavior regarding parameter groups. The error message is indicating that you need to explicitly specify a parameter group that's compatible with MySQL 8.4 during the upgrade process.

This isn't a contradiction with your utf8mb4 character set configuration - in fact, you're correct that using utf8mb4 is recommended for MySQL 8.4 upgrades since utf8mb3 is deprecated. The issue is that parameter groups are version-specific in RDS, and you need to create a new parameter group for the 8.4 engine version.

Here's how to resolve this:

  1. Create a new parameter group that's compatible with MySQL 8.4
  • Navigate to the RDS console parameter groups section
  • Click "Create parameter group"
  • Select MySQL as the engine type
  • For Parameter group family, select the version that matches your upgraded engine (mysql8.4)
  • Provide a name and description
  • Click "Create"
  1. Configure the new parameter group with your custom settings
  • Copy your current custom parameters to the new parameter group:
  • character_set_client: utf8mb4
  • character_set_server: utf8mb4
  • collation_connection: utf8mb4_0900_ai_ci
  • collation_server: utf8mb4_0900_ai_ci
  • max_connections: 1000
  • time_zone: Australia/Brisbane
  1. When you attempt the upgrade again, explicitly specify this new parameter group in the upgrade request.

  2. After the upgrade completes, you may need to reboot the instance to apply all parameter group changes. The instance's parameter group status will show 'pending-reboot' if this is necessary.

This approach allows you to maintain your required settings (including utf8mb4 character sets and your time zone configuration) while satisfying the requirement to use a parameter group that's compatible with the new engine version.
Sources
RDS Engine Upgrade Failure – Parameter Group Family Mismatch | AWS re:Post
Major version upgrades for RDS for MariaDB - Amazon Relational Database Service
Testing an RDS for MySQL upgrade - Amazon Relational Database Service
Major version upgrades for RDS for MySQL - Amazon Relational Database Service

已回答 2 個月前
專家
已審閱 2 個月前
0

The AI is correct - it's a pity they don't explain this in the instructions

已回答 2 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。