1

I ran the mysql community installer on Red Hat 7.9 over a 5.7.36 installation.

First, I ran xtrabackup for all dbs Then I stopped mysqld Then I ran yum install Everything ended ok I got the below error on the error log when trying to start mysqld back.

[System] [MY-013381] [Server] Server upgrade from '50700' to '80032' started.
[ERROR] [MY-013178] [Server] Execution of server-side SQL statement 'ALTER TABLE mysql.plugin TABLESPACE = mysql; ' failed with error code = 3825, error message = 'Request to create 'encrypted' table while using an 'unencrypted' tablespace.'.
[ERROR] [MY-013380] [Server] Failed to upgrade server.
[ERROR] [MY-010119] [Server] Aborting

My databases are encrypted using keyring.

The my.cnf config file:

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]

early-plugin-load=keyring_file.so

sql_mode=""

bind-address = 0.0.0.0
datadir = /var/lib/mysql

innodb_file_per_table = ON
key_buffer_size = 16M
log-error = /var/log/mysqld.log
max_allowed_packet = 1024M
max_binlog_size = 1000M
max_connections = 150
port = 3306
skip-external-locking
socket = /var/lib/mysql/mysql.sock
tmpdir = /tmp
user = mysql

#server-id = 11211
#log-bin = mysql-bin

innodb_buffer_pool_size = 2560M
innodb_log_buffer_size = 16M

innodb_redo_log_capacity=2GB

[mysqldump]
max_allowed_packet = 1024M
host = localhost

Reviewed permissions over both /var/lib/mysql dir and files and also over /var/lib/mysql-keyring/keyring file.

2
  • 1
    I've given up on MySQL 8.0. The only way to upgrade is basically to dump all data and import to a freshly installed instance. In-place upgrade is broken in multiple ways. Commented Mar 16, 2023 at 21:59
  • Bill, I figured out what the issue was and posted it in an answer below. Everything else worked just fine. Commented Mar 17, 2023 at 22:48

1 Answer 1

1

[SOLVED]

The problem happened when the mysql_upgrade step failed to decrypt mysql.plugin table, so to avoid this I just rolled back to 5.7, decrypted all MySQL db tables and ran the upgrade again.

alter table engine_cost ENCRYPTION='N';
alter table gtid_executed ENCRYPTION='N';
alter table help_category ENCRYPTION='N';
alter table help_keyword ENCRYPTION='N';
alter table help_relation ENCRYPTION='N';
alter table help_topic ENCRYPTION='N';
alter table innodb_index_stats ENCRYPTION='N';
alter table innodb_table_stats ENCRYPTION='N';
alter table plugin ENCRYPTION='N';
alter table server_cost ENCRYPTION='N';
alter table servers ENCRYPTION='N';
alter table slave_master_info ENCRYPTION='N';
alter table slave_relay_log_info ENCRYPTION='N';
alter table slave_worker_info ENCRYPTION='N';
alter table time_zone ENCRYPTION='N';
alter table time_zone_leap_second ENCRYPTION='N';
alter table time_zone_name ENCRYPTION='N';
alter table time_zone_transition ENCRYPTION='N';
alter table time_zone_transition_type ENCRYPTION='N';

It worked fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.