Upgrade the database minor version of MySQL 8.0 Stay organized with collections Save and categorize content based on your preferences.
Cloud SQL for MySQL supports multiple minor versions of MySQL 8.0and provisions MySQL 8.0 instances on the default minor version, which isone minor version earlier than the latest minor version.
With each new minor version, database providers release new features,security patches, bug fixes, and performance improvements.
MySQL 8.0 doesn't support downgrading.
Note: To upgrade the major version of a Cloud SQL for MySQL database, seeUpgrade the database major version by migrating dataorUpgrade the database major version in-place.Automatic upgrade
Cloud SQL supports the automatic minor versionupgrade of Cloud SQL for MySQL 8.0 instances that aren't tied to aspecific minor version. The instance must be runningMySQL version 8.0.35 or later.
If your instance is enabled for automatic minor version upgrade,then the Cloud SQL for MySQL 8.0 instance is upgradedautomatically to thedefault minor versionof Cloud SQL for MySQL 8.0 during itsregularly scheduled maintenance update.You're no longer required to perform minor versionupgrades manually to keep your Cloud SQL for MySQL instanceup-to-date with the latest security patches and bug fixes released by theMySQL community.
Note: Automatic minor version upgrade occurs only during regularly scheduledmaintenance events, not during self-service maintenance.Check for automatic minor upgrade enablement
To check whether your instance is enabled for automatic minor version upgrade,run the following command:
gcloud sql instances describeINSTANCE_NAME \--project=PROJECT_ID
ReplaceINSTANCE_NAME with the name of the instance andPROJECT_ID with the project ID of the instance.In the output of the command, locate the following fields.
databaseVersion: the value must beMYSQL_8_0databaseInstalledVersion: the value must be a minor version equal or greater thanMYSQL_8_0_35
Manual upgrade
This section describes how to upgrade the minor version of a Cloud SQL for MySQL8.0 instance manually. If you're running a Cloud SQL for MySQL version 8.0.34 orearlier, then you must upgrade the minor version of Cloud SQL for MySQL manually.
Before upgrading to a new MySQL 8.0 minor version, familiarize yourself with thechanges. SeeMySQL 8.0 Release Notes.If you use Cloud SQL for MySQL 5.6 or 5.7, Cloud SQL automaticallymanages your instance's minor version. When you provision a new instance,Cloud SQL automatically configures your instance with the latest databaseversion available. During routine maintenance, Cloud SQL automaticallyupgrades your instance to the latest supported version.
To upgrade the database minor version of your MySQL 8.0 instance, you need toupdate the instance with your preferred minor version, which must be greaterthan the installed minor version. You can't revert to an unspecifiedminor version after an instance has been provisioned.
If you're running a Cloud SQL Enterprise Plus edition instance, then theminor version upgrade completes withnear-zero downtime.
Before you upgrade manually
Cloud SQL supports minor version upgrade for MySQL 8.0 instances.MySQL 8.0 doesn't allow downgrades. So, before you upgrade your primary instance,follow these steps to ensure that your data is safe.
Choose the target minor version of the database.
gcloud
For information about installing and getting started with the gcloud CLI, seeInstall the gcloud CLI. For information about starting Cloud Shell, seeUse Cloud Shell.
To check which minor versions of the database are available for an in-place upgrade, do the following:
- Run the following command.
- In the output of the command, locate the section that is labeled
upgradableDatabaseVersions. - Each subsection returns a database version that is available for upgrade. In each subsection, review the following field.
name: the database version string that includes the database major and minor version that you can target for the Cloud SQL for MySQL minor version in-place upgrade.
gcloud sql instances describeINSTANCE_NAME
ReplaceINSTANCE_NAME with the name of the instance.
REST v1
To check which minor versions of the database are available for an in-place upgrade, use the
instances.getmethodof the Cloud SQL Admin API.Before using any of the request data, make the following replacements:
- INSTANCE_NAME: The instance name.
HTTP method and URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
To send your request, expand one of these options:
curl (Linux, macOS, or Cloud Shell)
Note: The following command assumes that you have logged in to thegcloudCLI with your user account by runninggcloud initorgcloud auth login, or by usingCloud Shell, which automatically logs you into thegcloudCLI . You can check the currently active account by runninggcloud auth list.Execute the following command:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME"PowerShell (Windows)
Note: The following command assumes that you have logged in to thegcloudCLI with your user account by runninggcloud initorgcloud auth login. You can check the currently active account by runninggcloud auth list.Execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME" | Select-Object -Expand ContentYou should receive a JSON response similar to the following:
upgradableDatabaseVersions:{ major_version: "MYSQL_8_0" name: "MYSQL_8_0_36" display_name: "MySQL 8.0.36"}REST v1beta4
To check which minor versions of the database are available for an in-place upgrade, use the
instances.getmethod of the Cloud SQL Admin API.Before using any of the request data, make the following replacements:
- INSTANCE_NAME: The instance name.
HTTP method and URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
To send your request, expand one of these options:
curl (Linux, macOS, or Cloud Shell)
Note: The following command assumes that you have logged in to thegcloudCLI with your user account by runninggcloud initorgcloud auth login, or by usingCloud Shell, which automatically logs you into thegcloudCLI . You can check the currently active account by runninggcloud auth list.Execute the following command:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME"PowerShell (Windows)
Note: The following command assumes that you have logged in to thegcloudCLI with your user account by runninggcloud initorgcloud auth login. You can check the currently active account by runninggcloud auth list.Execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME" | Select-Object -Expand ContentYou should receive a JSON response similar to the following:
upgradableDatabaseVersions:{ major_version: "MYSQL_8_0" name: "MYSQL_8_0_36" display_name: "MySQL 8.0.36"}For the complete list of the database versions that Cloud SQL supports, seeDatabase versions and version policies.
Test your upgrade in a staging environment.
Create a clone of your production instance to serve as a staging instance.This creates a new database instance, with the same major and minor versions.
Perform a minor version upgrade on the staging instance.
Run workload tests to verify that the upgrade was successful andthat your application performs as expected. When testing is successful,proceed to upgrade your read replica instances.
Upgrade your read replica instances.
Upgrade all read replicas in the database to the target minor version.
Verify that your application works as expected.
Back up your primary instance.
As with any significant database update, make a backup of your primary instance.
Upgrade the minor version
You can specify the database minor version of an existing instance by usinggcloud orthe REST API. Perform minor version upgrades at a time when the database isn't inuse. If your instance requires a restart, then as a result, yourinstance experiences some downtime. Cloud SQL Enterprise Plus edition instancesexperience near-zero downtime.If the installed version is higher than the requested version,then the request is rejected.
gcloud
Use thegcloud sql instances patch command with the--database-version flag.
Replace the following variables before running the command:
- INSTANCE_NAME: The name of the instance.
- DATABASE_VERSION: The database version of the instance. If you don't specify this flag, the default major version is used.
gcloudsqlinstancespatchINSTANCE_NAME\--database-version=DATABASE_VERSION
REST v1
Use a PATCH request with theinstances:patch method and thedatabaseVersion flag.
Before using any of the request data, make the following replacements:
- PROJECT_ID: The project ID
- INSTANCE_ID: The instance ID
- DATABASE_VERSION: The database version to upgrade to.
HTTP method and URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Request JSON body:
{ "databaseVersion": "DATABASE_VERSION"}To send your request, expand one of these options:
curl (Linux, macOS, or Cloud Shell)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID"
PowerShell (Windows)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID" | Select-Object -Expand Content
You should receive a JSON response similar to the following:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-07-17T20:23:15.540Z", "operationType": "UPDATE", "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetProject": "PROJECT_ID"}REST v1beta4
Use a PATCH request with theinstances:patch method and thedatabaseVersion flag.
Before using any of the request data, make the following replacements:
- PROJECT_ID: The project ID
- INSTANCE_ID: The instance ID
- DATABASE_VERSION: The database version to upgrade to.
HTTP method and URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID
Request JSON body:
{ "databaseVersion": "DATABASE_VERSION"}To send your request, expand one of these options:
curl (Linux, macOS, or Cloud Shell)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login , or by usingCloud Shell, which automatically logs you into thegcloud CLI . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID"
PowerShell (Windows)
Note: The following command assumes that you have logged in to thegcloud CLI with your user account by runninggcloud init orgcloud auth login . You can check the currently active account by runninggcloud auth list. Save the request body in a file namedrequest.json, and execute the following command:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_ID" | Select-Object -Expand Content
You should receive a JSON response similar to the following:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2022-07-17T20:23:15.540Z", "operationType": "UPDATE", "name": "fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetId": "INSTANCE-ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/fa3f7304-ccf6-4d2f-a6f5-24df00000032", "targetProject": "PROJECT_ID"}Check the database minor installed version
When youview the instance summary information,the database minor installed version is visible in the Configuration section.
Roll back an upgrade
While testing an upgrade, if you notice an issue, you might want to roll backyour database to recover the database instance running the previous minor version.
To restore a pre-upgrade backup, complete the following steps:
- Provision a recovery database instance on the previous minor version.
- Configure settings on the recovery database instance to the pre-upgrade state.
- Restore the pre-upgrade backup you took to the recovery instance.
As an alternative to restoring a backup,perform a point-in-time recovery and create a new instance.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-12-17 UTC.