IBM Cloud Docs
Upgrading to a new Major Version

Upgrading to a new Major Version

Once a major version of a database is at its End Of Life (EOL), upgrade to a current major version.

Find the available versions of MySQL on the IBM Cloud® Databases for MySQL catalog page, from the Cloud Databases CLI plug-in command ibmcloud cdb deployables-show, or from the Cloud Databases API /deployables endpoint.

Requirements for upgrading to MySQL version 8

SHA-256 Plug-in

In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password.

If you encounter the following error:

Server] Plugin sha256_password reported: ''sha256_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'

then you need to ALTER affected Users. Use a command like:

ALTER USER usernmae@remoteip
IDENTIFIED WITH 'caching_sha2_password'
   RETAIN CURRENT PASSWORD

For more information, see SHA-256 Pluggable Authentication.

Back up and Restore Upgrade

To upgrade your database, initiate the process by restoring a backup of your data into a new deployment that is running the new database version.

Upgrading in the UI

You can upgrade to a new version when restoring a backup from the Backups menu of your Deployment dashboard. Clicking Restore on a backup brings up a dialog box where you can change some options for the new deployment. One of them is the database version, which is auto-populated with the versions available for you to upgrade to. Select a version and click Restore to start the provision and restore process.

Upgrading through the CLI

To upgrade and restore from backup through the IBM Cloud CLI, use the provisioning command from the Resource Controller.

ibmcloud resource service-instance-create <service-name> <service-id> <service-plan-id> <region>

The parameters service-name, service-id, service-plan-id, and region are all required. You also supply the -p with the version and backup_ID parameters in a JSON object. The new deployment is automatically sized with the same disk and memory as the source deployment at the time of the backup.

ibmcloud resource service-instance-create example-upgrade databases-for-mysql standard us-south \
-p \ '{
  "backup_id": "crn:v1:bluemix:public:databases-for-mysql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "version":8
}'

Upgrading through the API

Complete the necessary steps to use the Resource Controller API before using it to upgrade from a backup. Then, send the API a POST request. The parameters name, target, resource_group, and resource_plan_id are all required. You also supply the version and backup_ID. The new deployment has the same memory and disk allocation as the source deployment at the time of the backup.

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "bluemix-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-mysql-standard",
    "backup_id": "crn:v1:bluemix:public:databases-for-mysql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":8
  }'