Search code examples
mysqlupgraderedhatrpmyum

MySQL FAIL on upgrade from v5.1 to v8.* -- How to recover data


I am currently running a Redhat Server:

Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.10 (Santiago)
Release:        6.10
Codename:       Santiago

and previously had MySQL version 5.1 installed. I needed to upgrade MySQL to version > 5.6 so first I exported all the databases with: mysqldump [options] > dump.sql. I downloaded the rpm: mysql80-community-release-el6-2.noarch.rpm and ran:

sudo rpm -Uvh mysql80-community-release-el6-2.noarch.rpm 
sudo yum -y update mysql*
rpm -qa | grep mysql
mysql-community-libs-8.0.15-1.el6.x86_64
mysql80-community-release-el6-2.noarch
mysql-community-server-8.0.15-1.el6.x86_64
mysql-community-common-8.0.15-1.el6.x86_64
mysql-community-libs-compat-8.0.15-1.el6.x86_64
mysql-community-client-8.0.15-1.el6.x86_64

Now my problem arises when I try starting mysql: sudo service mysqld start Obviously, it won't start and here are the logs:

2019-04-23T22:04:09.953724Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 16303
2019-04-23T22:04:10.072176Z 1 [ERROR] [MY-013090] [InnoDB] Unsupported redo log format (0). The redo log was created before MySQL 5.7.9
2019-04-23T22:04:10.072217Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error.
2019-04-23T22:04:10.672999Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2019-04-23T22:04:10.673398Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-04-23T22:04:10.673567Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-04-23T22:04:10.674496Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.
2019-04-23T22:07:57.788396Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2019-04-23T22:07:57.788446Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2019-04-23T22:07:57.790578Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 16750
2019-04-23T22:07:59.289318Z 1 [ERROR] [MY-013168] [InnoDB] Cannot upgrade server earlier than 5.7 to 8.0
2019-04-23T22:08:04.399358Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2019-04-23T22:08:04.399712Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-04-23T22:08:04.400111Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-04-23T22:08:04.401574Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.
2019-04-23T22:23:36.368160Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2019-04-23T22:23:36.368200Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2019-04-23T22:23:36.370634Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 17915
2019-04-23T22:23:36.772757Z 1 [ERROR] [MY-013168] [InnoDB] Cannot upgrade server earlier than 5.7 to 8.0
2019-04-23T22:23:41.882681Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2019-04-23T22:23:41.883054Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-04-23T22:23:41.883362Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-04-23T22:23:41.884282Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.
2019-04-23T23:01:40.642684Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2019-04-23T23:01:40.642724Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2019-04-23T23:01:40.646798Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 20087
2019-04-23T23:01:41.612258Z 1 [ERROR] [MY-013168] [InnoDB] Cannot upgrade server earlier than 5.7 to 8.0
2019-04-23T23:01:46.720034Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2019-04-23T23:01:46.720414Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-04-23T23:01:46.720645Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-04-23T23:01:46.721479Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.
2019-04-23T23:38:32.052191Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2019-04-23T23:38:32.052242Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2019-04-23T23:38:32.056515Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 22326
2019-04-23T23:38:32.619209Z 1 [ERROR] [MY-013168] [InnoDB] Cannot upgrade server earlier than 5.7 to 8.0
2019-04-23T23:38:37.728572Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2019-04-23T23:38:37.729004Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2019-04-23T23:38:37.729451Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-04-23T23:38:37.730880Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15)  MySQL Community Server - GPL.

2019-04-23T23:38:32.619209Z 1 [ERROR] [MY-013168] [InnoDB] Cannot upgrade server earlier than 5.7 to 8.0

What steps are needed to be done to upgrade MySQL corretly while preserving the data in the databases? Right now, I only have the Schemas backed up. A fresh install would be the last resort, so is it possible at my current state to recover the database data and perform an upgrade correctly?

Edit

I uninstalled MySQL8.0 and installed V 5.6 but on start I am getting this error in the logs - I'm not sure what to do from here:

2019-04-24 10:41:07 14335 [Note] Plugin 'FEDERATED' is disabled.
2019-04-24 10:41:07 14335 [Note] InnoDB: Using atomics to ref count buffer poolpages
2019-04-24 10:41:07 14335 [Note] InnoDB: The InnoDB memory heap is disabled
2019-04-24 10:41:07 14335 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2019-04-24 10:41:07 14335 [Note] InnoDB: Memory barrier is not used
2019-04-24 10:41:07 14335 [Note] InnoDB: Compressed tables use zlib 1.2.11
2019-04-24 10:41:07 14335 [Note] InnoDB: Using Linux native AIO
2019-04-24 10:41:07 14335 [Note] InnoDB: Using CPU crc32 instructions
2019-04-24 10:41:07 14335 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2019-04-24 10:41:07 14335 [Note] InnoDB: Completed initialization of buffer pool
2019-04-24 10:41:07 14335 [ERROR] InnoDB: auto-extending data file ./ibdata1 is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
2019-04-24 10:41:07 14335 [ERROR] InnoDB: Could not open or create the system tablespace. If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not yet use them in any way. But be careful: do not remove old data files which contain your precious data!
2019-04-24 10:41:07 14335 [ERROR] Plugin 'InnoDB' init function returned error.
2019-04-24 10:41:07 14335 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2019-04-24 10:41:07 14335 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-04-24 10:41:07 14335 [ERROR] Aborting
2019-04-24 10:41:07 14335 [Note] Binlog end
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'partition'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_DATAFILES'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_TABLESPACES'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN_COLS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_FOREIGN'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_FIELDS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_COLUMNS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_INDEXES'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_TABLESTATS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_SYS_TABLES'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_FT_INDEX_TABLE'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_FT_INDEX_CACHE'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_FT_CONFIG'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_FT_BEING_DELETED'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_FT_DELETED'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_FT_DEFAULT_STOPWOR                                                                                                                                                            D'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_METRICS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_BUFFER_POOL_STATS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE_LRU'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_BUFFER_PAGE'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX_RESE                                                                                                                                                             T'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_CMP_PER_INDEX'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_CMPMEM_RESET'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_CMPMEM'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_CMP_RESET'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_CMP'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_LOCK_WAITS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_LOCKS'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'INNODB_TRX'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'BLACKHOLE'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'ARCHIVE'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'MRG_MYISAM'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'MEMORY'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'CSV'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'MyISAM'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'sha256_password'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'mysql_old_password'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'mysql_native_password'
2019-04-24 10:41:07 14335 [Note] Shutting down plugin 'binlog'
2019-04-24 10:41:07 14335 [Note] /usr/sbin/mysqld: Shutdown complete

Solution

  • Found a relatable post and got it to start. Ref: Solution

    This solution worked for me. WARNING: This will delete all your data.

    1. Navigate to /var/lib/mysql
    2. Delete all ib_logfile's
    3. Delete the ibdata1 file
    4. Restart mysql server