diff --git a/examples/migration-8.0/.env b/examples/migration-8.0/.env
new file mode 100644
index 0000000000000000000000000000000000000000..67f58abb21e96d26b843815a5c852a6961da84c0
--- /dev/null
+++ b/examples/migration-8.0/.env
@@ -0,0 +1,7 @@
+DB_ROOT_PASSWORD='secret'
+DB_USER='testuser'
+DB_PASSWORD='password'
+DB_DATABASE='testdb'
+MYSQL_name='mysql-container'
+MARIADB_DUMP_name='mariadb-container-dump'
+MARIADB_MIGRATED_name='mariadb-migrated-mysql8.0'
\ No newline at end of file
diff --git a/examples/migration-8.0/.gitignore b/examples/migration-8.0/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..7aea0eaa53361b0bb9256dac1c2edad251c34eab
--- /dev/null
+++ b/examples/migration-8.0/.gitignore
@@ -0,0 +1 @@
+dump-data/*
\ No newline at end of file
diff --git a/examples/migration-8.0/compose-mysql8.0.yml b/examples/migration-8.0/compose-mysql8.0.yml
new file mode 100644
index 0000000000000000000000000000000000000000..74563263a52839660a1f0edd62b02fcde2e9c9df
--- /dev/null
+++ b/examples/migration-8.0/compose-mysql8.0.yml
@@ -0,0 +1,80 @@
+version: "3.2"
+# Anchors
+x-common-variables: &common-variables
+  MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
+  MARIADB_USER: ${DB_USER}
+  MARIADB_PASSWORD: ${DB_PASSWORD}
+  MARIADB_DB: ${DB_DATABASE}
+  MYSQL_CONT_NAME: ${MYSQL_name}
+
+x-common-attributes: &common-attributes
+  env_file:
+    - .env
+  image: mariadb:lts
+  environment: *common-variables # alias
+  healthcheck:
+    test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
+    start_period: 10s
+    interval: 20s
+    timeout: 20s
+    retries: 3
+  networks:
+    - backend
+
+services:
+  mysql:
+    environment:
+      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
+      MYSQL_USER: ${DB_USER}
+      MYSQL_PASSWORD: ${DB_PASSWORD}
+      MYSQL_DATABASE: ${DB_DATABASE}
+    container_name: ${MYSQL_name}
+    image: mysql:8.3.0
+    healthcheck:
+      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
+      interval: 20s
+      timeout: 20s
+      retries: 2
+      start_period: 0s
+    command: --print-identified-with-as-hex=ON
+    volumes:
+      # Preload files for MySQL data
+      - ./mysql:/docker-entrypoint-initdb.d:z
+      # We have to save MySQL volume that will be used in upgrade
+      - dbdata:/var/lib/mysql
+    networks:
+      - backend
+
+  mariadb-dump:
+    <<: *common-attributes # aliases
+    container_name: ${MARIADB_DUMP_name}
+    depends_on:
+      mysql:
+        condition: service_healthy
+    volumes:
+      - mysqldump:/etc/dump/
+      - ./dump-mysql.sh:/docker-entrypoint-initdb.d/dump-mysql.sh
+
+  mariadb-migrated-from-mysql8:
+    <<: *common-attributes # aliases
+    container_name: ${MARIADB_MIGRATED_name}
+    depends_on:
+     mariadb-dump:
+       condition: service_healthy
+      #  restart: true
+    volumes:
+      - mysqldump:/etc/dump/
+      - ./migrate-mariadb.sh:/docker-entrypoint-initdb.d/migrate-mariadb.sh
+
+volumes:
+  dbdata: {}
+  # sudo chown -R 999:999 ${PWD}/dump-data # on host before running this file
+  mysqldump:
+    driver: local
+    driver_opts:
+      type: none
+      device: "${PWD}/dump-data"
+      o: bind
+
+networks:
+  backend:
\ No newline at end of file
diff --git a/examples/migration-8.0/dump-mysql.sh b/examples/migration-8.0/dump-mysql.sh
new file mode 100755
index 0000000000000000000000000000000000000000..882e801fc2a6610c41fa99b2e809725c68041b54
--- /dev/null
+++ b/examples/migration-8.0/dump-mysql.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+echo 'MariaDB service started.'
+# Run your commands and exit container
+whoami # mysql
+# sh -c "chown -R mysql:mysql /etc/dump" # Operation permitted
+echo 'Remove files if exist'
+files=("mysql-dump-data.sql.zst" "mysql-dump-users.sql.zst" "mysql-dump-stats.sql.zst" "mysql-dump-tzs.sql.zst")
+for fileName in "${files[@]}"; do
+    if [ -f "$fileName" ]; then
+        echo "File ${fileName} exists. Remove it ... "
+        rm "$fileName"
+    fi
+done
+echo 'Dump and compress MySQL data with changed collation ...'
+fileName="mysql-dump-data.sql.zst"
+sh -c "mariadb-dump -h${MYSQL_CONT_NAME} -uroot -p${MARIADB_ROOT_PASSWORD} ${MARIADB_DB} | sed 's/utf8mb4_0900/uca1400/g' | zstd > /etc/dump/${fileName}"
+echo 'Dump and compress MySQL users ...'
+fileName="mysql-dump-users.sql.zst"
+sh -c "mariadb-dump -h${MYSQL_CONT_NAME} -uroot -p${MARIADB_ROOT_PASSWORD} --system=users | zstd > /etc/dump/${fileName}"
+echo 'Dump and compress MySQL stats ...'
+fileName="mysql-dump-stats.sql.zst"
+sh -c "mariadb-dump -h${MYSQL_CONT_NAME} -uroot -p${MARIADB_ROOT_PASSWORD} --system=stats | zstd > /etc/dump/${fileName}"
+echo 'Dump and compress MySQL timezones ...'
+fileName="mysql-dump-tzs.sql.zst"
+sh -c "mariadb-dump -h${MYSQL_CONT_NAME} -uroot -p${MARIADB_ROOT_PASSWORD} --system=timezones | zstd > /etc/dump/${fileName}"
+echo 'Show MySQL 8.0 create user'
+sh -c "mariadb -h${MYSQL_CONT_NAME} -uroot -p${MARIADB_ROOT_PASSWORD} -e 'SELECT @@print_identified_with_as_hex; show create user current_user();'"
\ No newline at end of file
diff --git a/examples/migration-8.0/migrate-mariadb.sh b/examples/migration-8.0/migrate-mariadb.sh
new file mode 100644
index 0000000000000000000000000000000000000000..af66195ce10d49d5c70bf3233fc6a53dc4258e42
--- /dev/null
+++ b/examples/migration-8.0/migrate-mariadb.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+echo "Extract file"
+oldFile="/etc/dump/mysql-dump.sql"
+if [ -f "$oldFile" ]; then
+    echo "Old file ${oldFile} exists. Remove it ... "
+    rm "$oldFile"
+    echo "Extracting ..."
+fi
+sh -c "zstd -d /etc/dump/mysql-dump-data.sql.zst -o /etc/dump/mysql-dump.sql"
+echo "Show data in MariaDB"
+mariadb -uroot -p"${MARIADB_ROOT_PASSWORD}" -e "create database testdb;"
+mariadb -uroot -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DB}" < /etc/dump/mysql-dump.sql
+mariadb -uroot -p"${MARIADB_ROOT_PASSWORD}" -e "show databases; select * from testdb.countries;"
+# In order to import MySQL users we have to fix bug MDEV-33486
+# We need to load `caching_sha2_password`
\ No newline at end of file
diff --git a/examples/migration-8.0/mysql/mysql-data.sql b/examples/migration-8.0/mysql/mysql-data.sql
new file mode 100644
index 0000000000000000000000000000000000000000..c71d95880d45a874989ff8289bc4c0db757c39af
--- /dev/null
+++ b/examples/migration-8.0/mysql/mysql-data.sql
@@ -0,0 +1,3 @@
+DROP TABLE IF EXISTS countries;
+CREATE TABLE countries(name char(20));
+INSERT INTO countries values ("Bosnia & Herzegovina");
\ No newline at end of file