Saltar al contenido

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?

preguntada hace 2 meses262 visualizaciones
2 Respuestas
0
Respuesta aceptada

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

respondido hace 2 meses
EXPERTO
revisado hace 2 meses
0

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

respondido hace 2 meses

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.