Minimum version of 8.0 that can be upgraded to 8.4?

Does anyone know of the minimum version of 8.0 that can be upgraded to 8.4?
Just checked one of our databases and says version 8.0.21 to 8.4 is not supported.
I have a few other db that I want to upgrade with different versions.
thanks,

Hello @ipcmlr, I wonder what specific error you faced and during what process!
I’d read https://dev.mysql.com/doc/refman/8.4/en/upgrade-paths.html to followup on the upgrade paths as needed. Are you doing in place upgrade? Hope you have verified all the prerequisites https://dev.mysql.com/doc/refman/8.4/en/upgrade-prerequisites.html.

I ran the upgrade checker and it said
“WARNING: Upgrading MySQL Server from version 8.0.21 to 8.4.1 is not supported.”
There is no mention on the mysql documentation of the minimum version required.

hmm! this is strange… I have not known to any such errors. We know there’s been changes but i just decided to do a quick test, which came out clean. May be you can elaborate more about your error?

(Also why 8.4.1? and not 8.4.5?)

mysql  Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL)
mysqlsh   Ver 8.4.5 for Linux on x86_64 - for MySQL 8.4.5 (MySQL Community Server (GPL))
 MySQL  JS > util.checkForServerUpgrade("root@localhost:3306",{configPath:"/etc/my.cnf", "targetVersion":"8.4.1"})
The MySQL server at localhost:3306, version 8.0.21 - MySQL Community Server -
GPL, will now be checked for compatibility issues for upgrade to MySQL 8.4.1.

1) Usage of db objects with names conflicting with new reserved keywords
(reservedKeywords)
   No issues found

2) Removed system variables (removedSysVars)
   No issues found

3) System variables with new default values (sysVarsNewDefaults)
   Warning: Following system variables that are not defined in your
   configuration file will have new default values. Please review if you rely
   on their current values and if so define them before performing upgrade.

   binlog_transaction_dependency_tracking - default value will change from
      COMMIT_ORDER to WRITESET.
   group_replication_consistency - default value will change from EVENTUAL to
      BEFORE_ON_PRIMARY_FAILOVER.
   group_replication_exit_state_action - default value will change from
      READ_ONLY to OFFLINE_MODE.
   innodb_adaptive_hash_index - default value will change from ON to OFF.
   innodb_buffer_pool_in_core_file - default value will change from ON to OFF.
   innodb_buffer_pool_instances - default value will change from 8 (or 1 if
      innodb_buffer_pool_size < 1GB) to MAX(1, #vcpu/4).
   innodb_change_buffering - default value will change from all to none.
   innodb_doublewrite_files - default value will change from
      innodb_buffer_pool_instances * 2 to 2.
   innodb_doublewrite_pages - default value will change from
      innodb_write_io_threads to 128.
   innodb_flush_method - default value will change from fsynch (unix) or
      unbuffered (windows) to O_DIRECT.
   innodb_io_capacity - default value will change from 200 to 10000.
   innodb_io_capacity_max - default value will change from 200 to 2 x
      innodb_io_capacity.
   innodb_log_buffer_size - default value will change from 16777216 (16MB) to
      67108864 (64MB).
   innodb_log_writer_threads - default value will change from ON to OFF ( if
      #vcpu <= 32 ).
   innodb_numa_interleave - default value will change from OFF to ON.
   innodb_page_cleaners - default value will change from 4 to
      innodb_buffer_pool_instances.
   innodb_parallel_read_threads - default value will change from 4 to
      MAX(#vcpu/8, 4).
   innodb_purge_threads - default value will change from 4 to 1 ( if #vcpu <=
      16 ).
   innodb_read_io_threads - default value will change from 4 to MAX(#vcpu/2, 4).
   innodb_redo_log_capacity - default value will change from 104857600 (100MB)
      to MIN ( #vcpu/2, 16 )GB.

   More information:
     https://dev.mysql.com/blog-archive/new-defaults-in-mysql-8-0/


4) Issues reported by 'check table x for upgrade' command (checkTableCommand)
   No issues found

5) Indexes on functions with changed semantics
(changedFunctionsInGeneratedColumns)
   No issues found

6) Check for deprecated usage of single dollar signs in object names
(dollarSignName)
   No issues found

7) Checks for foreign keys not referencing a full unique index
(foreignKeyReferences)
   No issues found

8) Check for deprecated or invalid user authentication methods.
(authMethodUsage)
   No issues found

9) Check for deprecated or removed plugin usage. (pluginUsage)
   No issues found

10) Check for deprecated or invalid default authentication methods in system
variables. (deprecatedDefaultAuth)
   No issues found

11) Check for deprecated or invalid authentication methods in use by MySQL
Router internal accounts. (deprecatedRouterAuthMethod)
   No issues found

12) Check for deprecated temporal delimiters in table partitions.
(deprecatedTemporalDelimiter)
   No issues found

13) Checks for errors in column definitions (columnDefinition)
   No issues found

14) Check for allowed values in System Variables. (sysvarAllowedValues)
   No issues found

15) Checks for user privileges that will be removed (invalidPrivileges)
   Verifies for users containing grants to be removed as part of the upgrade
   process.

   Notice: The following users have the SET_USER_ID privilege which will be
   removed as part of the upgrade process:
   - 'root'@'localhost'

   Solution:
   - If the privileges are not being used, no action is required, otherwise,
      ensure they stop being used before the upgrade as they will be lost.



16) Checks for partitions by key using columns with prefix key indexes
(partitionsWithPrefixKeys)
   No issues found
Errors:   0
Warnings: 20
Notices:  1

NOTE: No fatal errors were found that would prevent an upgrade, but some potential issues were detected. Please ensure that the reported issues are not significant before upgrading.
 MySQL  JS >
1 Like

Hello @ipcmlr,
8.0.21 is very old (over 5 years!!), being released on 2020-07-13. It has always been considered best practice to first upgrade to the latest patch version (ie: 8.0.42) before upgrading the minor version (ie: 8.4.X).

1 Like

I updated the mysql shell from 8.4.1 to 8.4.6 and now it is no longer giving me the error.
I was also getting some weird errors about composite keys when I was running 8.4.1 (could not find any issue with the keys) but they no longer show up when I use 8.4.6
This is strange. But thank you for testing.

Edit:
Both percona mysql shell 8.4.5 and generic mysql shell 8.4.6 show none of the errors that were in the earlier 8.4.1 version.

Please note that the below 2 MySQL shell versions released both issues mentioned. So, it is recommended that you always check with the latest available MySQL shell versions.

The upgrade checker utility returned an error claiming that it was not possible to upgrade from MySQL 8.0.x to MySQL 8.4.x. This upgrade path is possible.

See Upgrade Paths for information. (Bug #115798, Bug #36930714)

The Upgrade Checker utility returned a false positive for partial keys in schemas referencing full keys in other schemas. (Bug #37651453)