Documentation Home
MySQL 8.0 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 37.4Mb
PDF (A4) - 37.5Mb
PDF (RPM) - 33.8Mb
HTML Download (TGZ) - 8.3Mb
HTML Download (Zip) - 8.4Mb
HTML Download (RPM) - 7.3Mb
Man Pages (TGZ) - 129.8Kb
Man Pages (Zip) - 185.4Kb
Info (Gzip) - 3.3Mb
Info (Zip) - 3.3Mb


MySQL 8.0 Reference Manual  /  ...  /  Changes Affecting Downgrades from MySQL 8.0

Pre-General Availability Draft: 2018-02-23

2.10.2.1 Changes Affecting Downgrades from MySQL 8.0

Before downgrading from MySQL 8.0, review the changes described in this section. Some changes may require action before or after downgrading.

System Table Changes
  • In MySQL 8.0.2, the system tables in the mysql system database were migrated from individual tablespace files to a single tablespace file (mysql.ibd). Before downgrading to MySQL 5.7, move the mysql system tables back to individual tablespace files by running the following statements:

    ALTER TABLE mysql.columns_priv TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.component TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.db TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.default_roles TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.engine_cost TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.func TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.general_log TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.global_grants TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.gtid_executed TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.help_category TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.help_keyword TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.help_relation TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.help_topic TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.innodb_index_stats TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.innodb_table_stats TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.plugin TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.procs_priv TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.proxies_priv TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.role_edges TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.server_cost TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.servers TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.slave_master_info TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.slave_relay_log_info TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.slave_worker_info TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.slow_log TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.tables_priv TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.time_zone TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.time_zone_leap_second TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.time_zone_name TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.time_zone_transition TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.time_zone_transition_type TABLESPACE=innodb_file_per_table;
    ALTER TABLE mysql.user TABLESPACE=innodb_file_per_table;
  • In MySQL 8.0.2, six system tables changed from MyISAM to InnoDB. Before downgrading to MySQL 5.7, change each table back to MyISAM by running the following statements:

    ALTER TABLE mysql.columns_priv ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT
    ALTER TABLE mysql.db ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
    ALTER TABLE mysql.procs_priv ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
    ALTER TABLE mysql.proxies_priv ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
    ALTER TABLE mysql.tables_priv ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
    ALTER TABLE mysql.user ENGINE='MyISAM' STATS_PERSISTENT=DEFAULT;
  • In MySQL 8.0.2, two columns were added to the mysql.user table. Before downgrading to MySQL 5.7, remove these columns by running the following statements:

    ALTER TABLE mysql.user drop Create_role_priv;
    ALTER TABLE mysql.user drop Drop_role_priv;
InnoDB Changes
  • Incompatible change: Before performing an in-place downgrade from MySQL 8.0 to 5.7, you must shutdown MySQL using an innodb_fast_shutdown setting of 0 or 1 followed by removal of the redo log files (the ib_logfile* files). Performing a shutdown using innodb_fast_shutdown=0 and removing the redo logs are recommended steps in In-Place Downgrade.


User Comments
Sign Up Login You must be logged in to post a comment.