mysqlpump<\/span>\u00a0<\/a>\u00a0<\/span><\/strong>and importing to MySQL 8.0<\/span><\/li>\n<\/ol>\nWe at MinervaDB are technically ok with both methods of MySQL upgrades so far you have done thorough due diligence of MySQL 5.7 to MySQL 8.0 compatibilities and conflicts.<\/span><\/p>\n<\/span>mysql_upgrade is going way with MySQL 8.0.16<\/span><\/span><\/h3>\nmysql_upgrade binary is deprecated with MySQL 8.0.16, Going forward it will be functionally known as “server upgrade”.\u00a0This is added alongside the Data Dictionary upgrade (DD Upgrade), which is a process to update the data dictionary table definitions. From MySQL 8.0.16 mysqld binary takes care of entire upgrade procedure if needed.<\/span><\/p>\n<\/span>Manual mysql_upgrade process is still possible !<\/span><\/span><\/h3>\nYou don’t want automatic upgrades from “server upgrade” ? It is possible by configuring the MySQL 8.0 system variable\u00a0–upgrade\u00a0<\/em><\/span><\/p>\nRecommended values:<\/em><\/strong><\/span><\/p>\n\n- AUTO<\/strong> – \u00a0MySQL 8.0 performs automatic upgrade from\u00a0the\u00a0older release, MySQL 8.0 default value for server option –upgrade is\u00a0<\/i>AUTO.<\/strong><\/span><\/li>\n
- MINIMAL<\/strong> – MySQL 8.0 performs the upgrade of the data dictionary, the Performance Schema and INFORMATION_SCHEMA.\u00a0<\/strong>When the server option –upgrade is configured MINIMAL, Group Replication\u00a0cannot be started, because system tables on which the replication internals depend are not updated.\u00a0<\/em><\/span><\/li>\n
- FORCE<\/strong> – When server option –upgrade is set to FORCE<\/strong> , The server upgrades the\u00a0he data dictionary, the Performance Schema,\u00a0the\u00a0INFORMATION_SCHEMA,\u00a0<\/strong>the system tables in. the mysql<\/strong> schema, the sys schema and other user schemas.\u00a0<\/em><\/span><\/li>\n
- NONE<\/b> – The server performs no automatic upgrades when configured the server option –upgrade to NONE, This option\u00a0<\/em>prevents data dictionary upgrade and server exits with an error if the data dictionary is\u00a0found out of date.\u00a0<\/i><\/span><\/li>\n<\/ul>\n
<\/span>Troubleshooting MySQL 8.0 upgrade – What usually can go wrong with MySQL 8.0. upgrade ?<\/span><\/span><\/h3>\n\n- Conflicting with my.cnf of previous MySQL release \/ installation<\/strong><\/span> –If the new mysqld of MySQL 8.0 does not start, Please verify\u00a0that you do not have an old my.cnf file from your previous installation. \u00a0You can check this with the –print-defaults option (for example, mysqld –print-defaults). If this command displays anything other than the program name, you have an active my.cnf\u00a0file that affects server or client operation.<\/span><\/li>\n
- Commands out of sync \/ unexpected core dumps<\/strong><\/span> – After MySQL 8.0 upgrade, you experience problems with compiled client programs, such as Commands out of sync or unexpected core dumps, you probably have used old header or library files when compiling your programs. In this case, check the date for your mysql.h file and libmysqlclient.a library to verify that they are from the new MySQL distribution. If not, recompile your programs with the new headers and libraries. Recompilation might also be necessary for programs compiled against the shared client library if the library major version number has changed<\/span><\/li>\n
- Schema mismatch errors<\/strong><\/span> –\u00a0A schema mismatch in a MySQL 5.7 instance between the .frm file of a table and the InnoDB data dictionary can cause an upgrade to MySQL 8.0 to fail. Such mismatches may be due to .frm file corruption. To address this issue, dump and restore affected tables before attempting the upgrade again.<\/span><\/li>\n
- User-defined function (UDF) conflicts due to same name<\/strong><\/span>\u00a0–\u00a0If ever you have created a user-defined function (UDF) \/ stored functions in MySQL previous releases (eg. MySQL 5.7) with same name of MySQL 8.0 built-in function,\u00a0the UDF becomes inaccessible.<\/span><\/li>\n<\/ul>\n
<\/span>Downgrading from MySQL 8.0<\/span><\/h3>\nDowngrade from MySQL 8.0 to MySQL 5.7, or from a MySQL 8.0 release to a previous MySQL 8.0 release, is not supported. The only supported alternative is to restore a backup taken before<\/em><\/span> upgrading. It is therefore imperative that you backup your data before starting the upgrade process.<\/p>\n