diff --git a/docs/platform/concepts/service_backups.md b/docs/platform/concepts/service_backups.md
index 11545502f..ecedb621f 100644
--- a/docs/platform/concepts/service_backups.md
+++ b/docs/platform/concepts/service_backups.md
@@ -31,7 +31,7 @@ backups with the appropriate tooling:
- [PostgreSQL®](https://www.postgresql.org/docs/current/app-pgdump.html):
`pgdump`
-- [MySQL®](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)
+- [MySQL®](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html)
- `mysqldump` for small or medium-sized databases
- [`mydumper`](https://github.com/mydumper/mydumper) for large databases
@@ -251,7 +251,7 @@ internally for taking full (or incremental) snapshots for MySQL.
For manual backups and migrations, you can use:
-- [`mysqldump`](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) for small or
+- [`mysqldump`](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html) for small or
medium-sized databases
- [`mydumper`](https://github.com/mydumper/mydumper) for large databases
diff --git a/docs/platform/reference/eol-for-major-versions.md b/docs/platform/reference/eol-for-major-versions.md
index 498ae2909..45c10172d 100644
--- a/docs/platform/reference/eol-for-major-versions.md
+++ b/docs/platform/reference/eol-for-major-versions.md
@@ -90,6 +90,13 @@ After the EOL date:
## Aiven multi-versioned services EOL
+### Aiven for MySQL®
+
+| Version | Aiven EOL | Service creation supported until | Service creation supported from |
+| ------- | ----------------- | ---------------------------------- | ------------------------------- |
+| 8.0.x | 2026-10-31 | 2026-04-30 | 2018-05-18 |
+| 8.4.x | 2032-10-30 | 2032-04-30 | 2026-04-30 |
+
### Aiven for OpenSearch®
Aiven for OpenSearch® is the open source continuation of the original
@@ -105,7 +112,7 @@ dependent on the upstream project.
### Aiven for PostgreSQL®
-Aiven for PostgreSQL® major versions will reach EOL on the same date as
+Aiven for PostgreSQL® major versions reach EOL on the same date as
the upstream open source project's EOL.
| Version | Aiven EOL | Service creation supported until | Service creation supported from |
@@ -178,12 +185,6 @@ To support this transition, Aiven has extended support for Apache Kafka 3.8 by o
| ------- | --------------- |
| 11.6.5 | To be announced |
-### Aiven for MySQL®
-
-| Version | Aiven EOL |
-| ------- | --------------- |
-| 8.0.35 | To be announced |
-
### Aiven for Valkey™
| Version | Aiven EOL |
diff --git a/docs/products/mysql.md b/docs/products/mysql.md
index 51f466488..d68197e5d 100644
--- a/docs/products/mysql.md
+++ b/docs/products/mysql.md
@@ -21,7 +21,7 @@ a MySQL that you can use.
- [Aiven.io](https://aiven.io/mysql)
- [MySQL proprietary
- documentation](https://dev.mysql.com/doc/refman/8.0/en/) (upstream
+ documentation](https://dev.mysql.com/doc/refman/8.4/en/) (upstream
project documentation)
- [Blog post about
MyHoard](https://aiven.io/blog/introducing-myhoard-your-single-solution-to-mysql-backups-and-restoration),
diff --git a/docs/products/mysql/concepts/mysql-memory-usage.md b/docs/products/mysql/concepts/mysql-memory-usage.md
index b714f1504..c3e5f70c6 100644
--- a/docs/products/mysql/concepts/mysql-memory-usage.md
+++ b/docs/products/mysql/concepts/mysql-memory-usage.md
@@ -23,8 +23,7 @@ pages from disk. When there are no more free pages in the pool, older
pages must be evicted and if they were modified, synchronized back to
disk (checkpointing).
-The [MySQL 8.0
-Reference](https://dev.mysql.com/doc/refman/8.0/en/innodb-buffer-pool.html)
+The [MySQL Reference](https://dev.mysql.com/doc/refman/8.4/en/innodb-buffer-pool.html)
says:
```
@@ -35,7 +34,7 @@ processing.
```
And [How MySQL Uses
-Memory](https://dev.mysql.com/doc/refman/8.0/en/memory-use.html) says:
+Memory](https://dev.mysql.com/doc/refman/8.4/en/memory-use.html) says:
```
InnoDB allocates memory for the entire buffer pool at server startup,
@@ -53,7 +52,7 @@ improve performance of database operations.
An explanation of these various buffers (or code areas) can be found in
the MySQL documentation: [How MySQL Uses
-Memory](https://dev.mysql.com/doc/refman/8.0/en/memory-use.html).
+Memory](https://dev.mysql.com/doc/refman/8.4/en/memory-use.html).
Using a 4 GB service as an example, a view of the global buffers shows
what memory has been allocated:
diff --git a/docs/products/mysql/concepts/mysql-replication.md b/docs/products/mysql/concepts/mysql-replication.md
index d15513ce8..80583be1e 100644
--- a/docs/products/mysql/concepts/mysql-replication.md
+++ b/docs/products/mysql/concepts/mysql-replication.md
@@ -13,7 +13,7 @@ contains full details of all changes in itself. For these reasons, Aiven
uses row format by default. Read more about the comparison between MySQL
statement based and row based replication on the [Advantages and
Disadvantages of Statement-Based and Row-Based
-Replication](https://dev.mysql.com/doc/refman/8.0/en/replication-sbr-rbr.html)
+Replication](https://dev.mysql.com/doc/refman/8.4/en/replication-sbr-rbr.html)
article.
The row based replication works very well as long as the tables being
diff --git a/docs/products/mysql/concepts/mysql-tuning-and-concurrency.md b/docs/products/mysql/concepts/mysql-tuning-and-concurrency.md
index 7db08af23..f104b9f2a 100644
--- a/docs/products/mysql/concepts/mysql-tuning-and-concurrency.md
+++ b/docs/products/mysql/concepts/mysql-tuning-and-concurrency.md
@@ -37,7 +37,7 @@ operations.**
An explanation of these various buffers (or code areas) can be found in
the MySQL documentation: [How MySQL Uses
-Memory](https://dev.mysql.com/doc/refman/8.0/en/memory-use.html).
+Memory](https://dev.mysql.com/doc/refman/8.4/en/memory-use.html).
```sql
SELECT SUBSTRING_INDEX(event_name,'/',2) AS code_area,
diff --git a/docs/products/mysql/get-started.md b/docs/products/mysql/get-started.md
index b924bad48..e75ac4f9a 100644
--- a/docs/products/mysql/get-started.md
+++ b/docs/products/mysql/get-started.md
@@ -21,7 +21,7 @@ Start using Aiven for MySQL® by creating a service, connecting to it, and loadi
- Access to the [Aiven Console](https://console.aiven.io)
-- [MySQL CLI client](https://dev.mysql.com/doc/refman/8.0/en/mysql.html)
+- [MySQL CLI client](https://dev.mysql.com/doc/refman/8.4/en/mysql.html)
installed
@@ -29,7 +29,7 @@ Start using Aiven for MySQL® by creating a service, connecting to it, and loadi
- [Terraform installed](https://www.terraform.io/downloads)
- A [personal token](https://docs.aiven.io/docs/platform/howto/create_authentication_token.html)
-- [MySQL CLI client](https://dev.mysql.com/doc/refman/8.0/en/mysql.html)
+- [MySQL CLI client](https://dev.mysql.com/doc/refman/8.4/en/mysql.html)
installed
@@ -141,7 +141,7 @@ using the outputs.
[Connect to your new service](/docs/products/mysql/howto/connect-from-cli) with
-[mysql](https://dev.mysql.com/doc/refman/8.0/en/mysql.html).
+[mysql](https://dev.mysql.com/doc/refman/8.4/en/mysql.html).
diff --git a/docs/products/mysql/howto/connect-from-cli.md b/docs/products/mysql/howto/connect-from-cli.md
index 464cd9e80..3b79b8ee1 100644
--- a/docs/products/mysql/howto/connect-from-cli.md
+++ b/docs/products/mysql/howto/connect-from-cli.md
@@ -22,7 +22,7 @@ These are the placeholders to replace in the code sample:
For this example you need the `mysqlsh` client installed. You can
install this by following the [MySQL shell installation
-documentation](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html).
+documentation](https://dev.mysql.com/doc/mysql-shell/8.4/en/mysql-shell-install.html).
### Code
@@ -62,7 +62,7 @@ These are the placeholders to replace in the code sample:
For this example you need the `mysql` client installed. You can install
it by following the [MySQL client installation
-documentation](https://dev.mysql.com/doc/refman/8.0/en/mysql.html).
+documentation](https://dev.mysql.com/doc/refman/8.4/en/mysql.html).
### Code
diff --git a/docs/products/mysql/howto/connect-with-java.md b/docs/products/mysql/howto/connect-with-java.md
index 6a5849669..03ef5ea6a 100644
--- a/docs/products/mysql/howto/connect-with-java.md
+++ b/docs/products/mysql/howto/connect-with-java.md
@@ -27,7 +27,7 @@ Replace the following placeholders in the code sample:
- Using maven:
```bash
- mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=mysql:mysql-connector-java:8.0.28:jar -Ddest=mysql-driver-8.0.28.jar
+ mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -Dartifact=com.mysql:mysql-connector-j:8.4.8:jar -Ddest=mysql-connector-j-8.4.8.jar
```
## Code
@@ -43,14 +43,14 @@ Run the code after replacement of the placeholders with values for your
project:
```
-javac MySqlExample.java && java -cp "mysql-driver-8.0.28.jar;." MySqlExample -host MYSQL_HOST -port MYSQL_PORT -database MYSQL_DATABASE -username avnadmin -password MYSQL_PASSWORD
+javac MySqlExample.java && java -cp "mysql-connector-j-8.4.8.jar;." MySqlExample -host MYSQL_HOST -port MYSQL_PORT -database MYSQL_DATABASE -username avnadmin -password MYSQL_PASSWORD
```
If the script runs successfully, the output will be the values that were
inserted into the table:
```text
-Version: 8.0.26
+Version: 8.4.8
```
Now that your application is connected, you are all set to use Java with
diff --git a/docs/products/mysql/howto/connect-with-php.md b/docs/products/mysql/howto/connect-with-php.md
index 53a6597b1..86e954ba7 100644
--- a/docs/products/mysql/howto/connect-with-php.md
+++ b/docs/products/mysql/howto/connect-with-php.md
@@ -63,5 +63,5 @@ If the script runs successfully, the output is the MySQL version running
in your service like:
```
-8.0.28
+8.4.8
```
diff --git a/docs/products/mysql/howto/create-missing-primary-keys.md b/docs/products/mysql/howto/create-missing-primary-keys.md
index 689d936aa..f39894742 100644
--- a/docs/products/mysql/howto/create-missing-primary-keys.md
+++ b/docs/products/mysql/howto/create-missing-primary-keys.md
@@ -59,7 +59,7 @@ ALTER TABLE person ADD PRIMARY KEY (social_security_number);
You don't have to explicitly define it as UNIQUE, [as the primary key
is always unique in
-MySQL](https://dev.mysql.com/doc/refman/8.0/en/primary-key-optimization.html).
+MySQL](https://dev.mysql.com/doc/refman/8.4/en/primary-key-optimization.html).
## Example: add a new separate id column
diff --git a/docs/products/mysql/howto/disable-foreign-key-checks.md b/docs/products/mysql/howto/disable-foreign-key-checks.md
index 4af1fb156..3d902cc5d 100644
--- a/docs/products/mysql/howto/disable-foreign-key-checks.md
+++ b/docs/products/mysql/howto/disable-foreign-key-checks.md
@@ -16,7 +16,7 @@ foreign key checking for the duration of a session.
- The `mysqlsh` client installed. You can install this by following
the MySQL shell installation
- [documentation](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html).
+ [documentation](https://dev.mysql.com/doc/mysql-shell/8.4/en/mysql-shell-install.html).
- An Aiven account with an Aiven for MySQL service running.
## Variables
@@ -128,6 +128,6 @@ Read the official documentation to understand possible implications that
can happen when disabling foreign key checks in your service.
- [Foreign Key
- Checks](https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html#foreign-key-checks).
+ Checks](https://dev.mysql.com/doc/refman/8.4/en/create-table-foreign-keys.html#foreign-key-checks).
- [Server System
- Variables](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_foreign_key_checks).
+ Variables](https://dev.mysql.com/doc/refman/8.4/en/server-system-variables.html#sysvar_foreign_key_checks).
diff --git a/docs/products/mysql/howto/manage-mysql-version.md b/docs/products/mysql/howto/manage-mysql-version.md
new file mode 100644
index 000000000..d28e6f713
--- /dev/null
+++ b/docs/products/mysql/howto/manage-mysql-version.md
@@ -0,0 +1,235 @@
+---
+title: Manage Aiven for MySQL® versions
+sidebar_label: Upgrade service version
+early: true
+---
+
+import RelatedPages from "@site/src/components/RelatedPages";
+import ConsoleLabel from "@site/src/components/ConsoleIcons";
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+Aiven for MySQL® supports multiple versions of MySQL running concurrently in the platform. Choose a version that best fits your needs and upgrade your service when ready.
+
+## Supported MySQL versions
+
+From version 8.4, Aiven for MySQL supports two major upstream MySQL versions at a time.
+These are the two latest major versions that are stable on the Aiven Platform.
+You can select either version when you create a service or upgrade an existing service.
+If you do not select a version, the default is the latest stable version on the Aiven
+Platform.
+
+See the supported versions in the
+[Aiven for MySQL version reference](/docs/platform/reference/eol-for-major-versions#aiven-for-mysql).
+
+## Before you upgrade
+
+### Check available versions
+
+Preview versions available for your service in [Aiven Console](https://console.aiven.io):
+
+- Major versions: Service
+ page > **Service management** section > >
+ **Upgrade version** > Expand the version dropdown list.
+- Minor versions: Service
+ page > **Maintenance** section > See the list of available mandatory and optional
+ updates.
+
+For automated upgrades, you get email notifications.
+
+### Check downgrade restrictions
+
+Downgrading to a previous version is not supported due to data format incompatibilities.
+Always test upgrades in a non-production environment first.
+
+To revert to a previous version:
+
+1. Create a service with the desired version.
+1. Restore data from a backup taken before the upgrade.
+1. Update your application connection strings.
+
+### Prerequisites for upgrade
+
+Before upgrading your service:
+
+- **Test in development**: Test the upgrade in a development environment first, for
+ example, using [service forking](/docs/platform/concepts/service-forking).
+- **Backup your data**: Ensure you have recent backups. Backups are automatic, but verify
+ they exist.
+
+To upgrade your service version, check that:
+
+- Your Aiven for MySQL service is running.
+- Target version to upgrade to is
+ [available for manual upgrade](/docs/products/mysql/howto/manage-mysql-version#check-available-versions).
+- You can use one of the following tools to upgrade:
+ - [Aiven Console](https://console.aiven.io/)
+ - [Aiven CLI](/docs/tools/cli)
+ - [Aiven API](/docs/tools/api)
+ - [Aiven Provider for Terraform](/docs/tools/terraform)
+ - [Aiven Operator for Kubernetes®](/docs/tools/kubernetes)
+
+## Upgrade your service
+
+
+
+
+1. In the [Aiven Console](https://console.aiven.io/), go to your Aiven for MySQL service.
+1. Open the page from the sidebar, and go to the
+ **Service management** section.
+1. Click > **Upgrade version**.
+1. Expand the version dropdown list, and select a version to upgrade to.
+
+ :::warning
+ When you click **Upgrade**:
+ - The system applies the upgrade immediately.
+ - You cannot downgrade the service to a previous version.
+ :::
+
+1. Click **Upgrade**.
+
+
+
+
+Upgrade the service version using the
+[avn service update](https://aiven.io/docs/tools/cli/service-cli#avn-cli-service-update)
+command:
+
+```bash
+avn service update SERVICE_NAME -c mysql_version="N.N"
+```
+
+Parameters:
+
+- `SERVICE_NAME`: Name of your service
+- `N.N`: Target service version to upgrade to, for example `8.4`
+
+
+
+
+Call the [ServiceUpdate](https://api.aiven.io/doc/#tag/Service/operation/ServiceUpdate)
+endpoint to set `mysql_version`:
+
+```bash
+curl --request PUT \
+ --url https://api.aiven.io/v1/project/PROJECT_NAME/service/SERVICE_NAME \
+ --header 'Authorization: Bearer BEARER_TOKEN' \
+ --header 'Content-Type: application/json' \
+ --data '{
+ "user_config": {
+ "mysql_version": "N.N"
+ }
+ }'
+```
+
+Parameters:
+
+- `PROJECT_NAME`: Name of your project
+- `SERVICE_NAME`: Name of your service
+- `BEARER_TOKEN`: Your API authentication token
+- `N.N`: Target service version to upgrade to, for example `8.4`
+
+
+
+
+Use the
+[`aiven_mysql`](https://registry.terraform.io/providers/aiven/aiven/latest/docs/resources/mysql)
+resource to set
+[`mysql_version`](https://registry.terraform.io/providers/aiven/aiven/latest/docs/resources/mysql#mysql_version-1):
+
+```hcl
+resource "aiven_mysql" "example" {
+ project = var.PROJECT_NAME
+ cloud_name = "CLOUD_NAME"
+ plan = "PLAN_NAME"
+ service_name = "SERVICE_NAME"
+
+ mysql_user_config {
+ mysql_version = "N.N"
+ }
+}
+```
+
+Parameters:
+
+- `PROJECT_NAME`: Name of your project
+- `CLOUD_NAME`: Cloud region identifier
+- `PLAN_NAME`: Service plan
+- `SERVICE_NAME`: Name of your service
+- `N.N`: Target service version to upgrade to, for example `8.4`
+
+
+
+
+Use the
+[MySQL](https://aiven.github.io/aiven-operator/resources/mysql.html)
+resource to set
+[`mysql_version`](https://aiven.github.io/aiven-operator/resources/mysql.html#spec.userConfig.mysql_version-property):
+
+```yaml
+apiVersion: aiven.io/v1alpha1
+kind: MySQL
+metadata:
+ name: SERVICE_NAME
+spec:
+ authSecretRef:
+ name: aiven-token
+ key: token
+
+ connInfoSecretTarget:
+ name: mysql-connection
+
+ project: PROJECT_NAME
+ cloudName: CLOUD_NAME
+ plan: PLAN_NAME
+
+ userConfig:
+ mysql_version: "N.N"
+```
+
+Apply the updated configuration:
+
+```bash
+kubectl apply -f mysql-service.yaml
+```
+
+Parameters:
+
+- `PROJECT_NAME`: Name of your project
+- `SERVICE_NAME`: Name of your service
+- `CLOUD_NAME`: Cloud region identifier
+- `PLAN_NAME`: Service plan
+- `N.N`: Target service version to upgrade to, for example `8.4`
+
+
+
+
+## Version selection for new services
+
+When creating an Aiven for MySQL service:
+
+- **Default version**: The latest stable version on the Aiven Platform is the default
+ version.
+- **Explicit selection**: You can specify a version using the `mysql_version` parameter.
+- **Version availability**: Only versions in `available` state can be selected.
+
+Example (CLI):
+
+```bash
+avn service create SERVICE_NAME \
+ --service-type mysql \
+ --plan PLAN_NAME \
+ --cloud CLOUD_NAME \
+ -c mysql_version="N.N"
+```
+
+Parameters:
+
+- `SERVICE_NAME`: Name of your service
+- `PLAN_NAME`: Service plan
+- `CLOUD_NAME`: Cloud region identifier
+- `N.N`: Service version, for example `8.1`
+
+
+
+[Service maintenance](/docs/platform/concepts/maintenance-window)
diff --git a/docs/products/mysql/howto/migrate-database-mysqldump.md b/docs/products/mysql/howto/migrate-database-mysqldump.md
index e9f03467f..7f502c6cc 100644
--- a/docs/products/mysql/howto/migrate-database-mysqldump.md
+++ b/docs/products/mysql/howto/migrate-database-mysqldump.md
@@ -11,7 +11,7 @@ import EarlyBadge from "@site/src/components/Badges/EarlyBadge";
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-Copy your Aiven for MySQL® data to a file, back it up to another Aiven for MySQL database, and restore it using [`mysqldump/restore`](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) or [`mydumper/myloader`](https://github.com/mydumper/mydumper).
+Copy your Aiven for MySQL® data to a file, back it up to another Aiven for MySQL database, and restore it using [`mysqldump/restore`](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html) or [`mydumper/myloader`](https://github.com/mydumper/mydumper).
@@ -24,7 +24,7 @@ memory capacity to process data migration without resource exhaustion or downtim
- [`mysqldump` tool](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html):
- [install](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install.html) if
+ [install](https://dev.mysql.com/doc/mysql-shell/8.4/en/mysql-shell-install.html) if
missing
- Source database to copy your data from: `source-db`
- Target database to dump your `source-db` data to: `target-db`
@@ -94,16 +94,16 @@ having the prompt request for the password is more secure than including
the password straight away in the command.
The `--single-transaction`
-[flag](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_single-transaction)
+[flag](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html#option_mysqldump_single-transaction)
starts a transaction in isolation mode `REPEATABLE READ` before running.
This allows `mysqldump` to read the database in its current state at the
time of the transaction, ensuring consistency of the data.
:::warning
If you are using [Global Transaction
-Identifiers](https://dev.mysql.com/doc/refman/5.7/en/replication-gtids-concepts.html)
+Identifiers](https://dev.mysql.com/doc/refman/8.4/en/replication-gtids-concepts.html)
(GTIDs) with InnoDB use the `--set-gtid-purged=OFF`
-[option](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_set-gtid-purged).
+[option](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html#option_mysqldump_set-gtid-purged).
The reason is that GTID's are not available with MyISAM.
:::
@@ -233,7 +233,7 @@ myloader \
When the password is requested at the prompt, paste `TARGET_DB_PASSWORD` into the terminal.
When the restore or load process is complete and the data is stored in your `target-db`,
you can use the
-[`mysqlcheck` command](https://dev.mysql.com/doc/refman/8.0/en/mysqlcheck.html) to
+[`mysqlcheck` command](https://dev.mysql.com/doc/refman/8.4/en/mysqlcheck.html) to
perform data analysis.
diff --git a/docs/products/mysql/howto/migrate-db-to-aiven-via-console.md b/docs/products/mysql/howto/migrate-db-to-aiven-via-console.md
index e596ccd8f..af2eb5013 100644
--- a/docs/products/mysql/howto/migrate-db-to-aiven-via-console.md
+++ b/docs/products/mysql/howto/migrate-db-to-aiven-via-console.md
@@ -110,7 +110,7 @@ migration wizard. To continue with the migration, the wizard allows you to selec
To make sure you have GTID enabled, open your `my.cnf` file in
`/etc/my.cnf` or `/etc/mysql/my.cnf`. If this file cannot be found, see [more potential locations in the MySQL
- documentation](https://dev.mysql.com/doc/refman/8.0/en/option-files.html).
+ documentation](https://dev.mysql.com/doc/refman/8.4/en/option-files.html).
1. Ensure the `my.cnf` file has the `[mysqld]` header.
diff --git a/docs/products/mysql/howto/migrate-from-external-mysql.md b/docs/products/mysql/howto/migrate-from-external-mysql.md
index ec424b510..73c3f4713 100644
--- a/docs/products/mysql/howto/migrate-from-external-mysql.md
+++ b/docs/products/mysql/howto/migrate-from-external-mysql.md
@@ -42,7 +42,7 @@ replication feature.
between the source and target servers.
- You have a user account on the source server with sufficient privileges to create a user
for the replication process.
-- [GTID](https://dev.mysql.com/doc/refman/8.0/en/replication-gtids.html) is enabled on the
+- [GTID](https://dev.mysql.com/doc/refman/8.4/en/replication-gtids.html) is enabled on the
source database. Review the current GTID setting by running the following command on the
source cluster:
diff --git a/docs/products/mysql/howto/mysql-long-running-queries.md b/docs/products/mysql/howto/mysql-long-running-queries.md
index e8d3c89a1..e465f8509 100644
--- a/docs/products/mysql/howto/mysql-long-running-queries.md
+++ b/docs/products/mysql/howto/mysql-long-running-queries.md
@@ -35,7 +35,7 @@ SHOW PROCESSLIST WHERE command = 'Query' AND info NOT LIKE '%PROCESSLIST%';
You can learn more about the `SHOW PROCESSLIST` command from the
[official
-documentation](https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html).
+documentation](https://dev.mysql.com/doc/refman/8.4/en/show-processlist.html).
You can terminate a query manually using:
@@ -47,4 +47,4 @@ where the `pid` is the process ID output by the `SHOW PROCESSLIST`
command above.
You can learn more about the `KILL QUERY` command from the [MySQL KILL
-documentation](https://dev.mysql.com/doc/refman/8.0/en/kill.html).
+documentation](https://dev.mysql.com/doc/refman/8.4/en/kill.html).
diff --git a/docs/products/mysql/howto/reclaim-disk-space.md b/docs/products/mysql/howto/reclaim-disk-space.md
index e046e5b84..3da59024b 100644
--- a/docs/products/mysql/howto/reclaim-disk-space.md
+++ b/docs/products/mysql/howto/reclaim-disk-space.md
@@ -6,10 +6,10 @@ You can configure InnoDB to release disk space back to the operating system by r
:::note
[Under certain
-conditions](https://dev.mysql.com/doc/refman/8.0/en/optimize-table.html#optimize-table-innodb-details)
+conditions](https://dev.mysql.com/doc/refman/8.4/en/optimize-table.html#optimize-table-innodb-details)
(for example, including the presence of a `FULLTEXT` index), command
`OPTIMIZE TABLE`
-[copies](https://dev.mysql.com/doc/refman/8.0/en/alter-table.html)
+[copies](https://dev.mysql.com/doc/refman/8.4/en/alter-table.html)
the data to a new table containing just the current data, and drops
and renames the new table to match the old one. During this process,
data modification is blocked. This requires enough free space to store
diff --git a/docs/tools/cli/service-cli.md b/docs/tools/cli/service-cli.md
index 4e98a5d7a..f55f5af8f 100644
--- a/docs/tools/cli/service-cli.md
+++ b/docs/tools/cli/service-cli.md
@@ -403,7 +403,7 @@ retrievable includes:
for Aiven for PostgreSQL services.
- the `performance_schema.events_statements_summary_by_digest` (refer
to [documentation on the events information from the performance
- schema](https://dev.mysql.com/doc/refman/8.0/en/performance-schema-statement-summary-tables.html))
+ schema](https://dev.mysql.com/doc/refman/8.4/en/performance-schema-statement-summary-tables.html))
for Aiven for MySQL services.
A description of the retrieved columns for Aiven for PostgreSQL can be
diff --git a/sidebars.ts b/sidebars.ts
index b8db9b047..a33b1708f 100644
--- a/sidebars.ts
+++ b/sidebars.ts
@@ -1497,6 +1497,7 @@ const sidebars: SidebarsConfig = {
items: [
'products/mysql/howto/create-database',
'products/mysql/howto/ai-insights',
+ 'products/mysql/howto/manage-mysql-version',
'products/mysql/howto/create-remote-replica',
'products/mysql/howto/use-incremental-backups',
'products/mysql/howto/migrate-database-mysqldump',