diff options
-rw-r--r-- | mysql-test/main/mysql_upgrade.result | 8 | ||||
-rw-r--r-- | mysql-test/main/mysql_upgrade.test | 13 | ||||
-rw-r--r-- | scripts/mysql_system_tables_fix.sql | 1 |
3 files changed, 22 insertions, 0 deletions
diff --git a/mysql-test/main/mysql_upgrade.result b/mysql-test/main/mysql_upgrade.result index f71ce087ba1..862e7e8f3d4 100644 --- a/mysql-test/main/mysql_upgrade.result +++ b/mysql-test/main/mysql_upgrade.result @@ -630,4 +630,12 @@ drop table mysql.innodb_index_stats, mysql.innodb_table_stats; # mysql_upgrade --force --silent 2>&1 drop table mysql.global_priv; rename table mysql.global_priv_bak to mysql.global_priv; +drop view mysql.user_bak; +alter table mysql.user change authentication_string auth_string text collate utf8_bin not null; +# mysql_upgrade --force --silent 2>&1 +select count(*) from mysql.global_priv; +count(*) +4 +drop table mysql.global_priv; +rename table mysql.global_priv_bak to mysql.global_priv; # End of 10.4 tests diff --git a/mysql-test/main/mysql_upgrade.test b/mysql-test/main/mysql_upgrade.test index 3dfe38701aa..0dad53f8881 100644 --- a/mysql-test/main/mysql_upgrade.test +++ b/mysql-test/main/mysql_upgrade.test @@ -282,4 +282,17 @@ drop table mysql.innodb_index_stats, mysql.innodb_table_stats; drop table mysql.global_priv; rename table mysql.global_priv_bak to mysql.global_priv; +# +# MDEV-21244 mysql_upgrade creating empty global_priv table +# +--source include/switch_to_mysql_user.inc +drop view mysql.user_bak; +alter table mysql.user change authentication_string auth_string text collate utf8_bin not null; +--echo # mysql_upgrade --force --silent 2>&1 +--exec $MYSQL_UPGRADE --force --silent 2>&1 +--remove_file $MYSQLD_DATADIR/mysql_upgrade_info +select count(*) from mysql.global_priv; +drop table mysql.global_priv; +rename table mysql.global_priv_bak to mysql.global_priv; + --echo # End of 10.4 tests diff --git a/scripts/mysql_system_tables_fix.sql b/scripts/mysql_system_tables_fix.sql index 741b814b83a..8faf7bcaf14 100644 --- a/scripts/mysql_system_tables_fix.sql +++ b/scripts/mysql_system_tables_fix.sql @@ -648,6 +648,7 @@ UPDATE user SET Delete_history_priv = Super_priv WHERE @had_user_delete_history_ ALTER TABLE user ADD plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL, ADD authentication_string TEXT NOT NULL; +ALTER TABLE user CHANGE auth_string authentication_string TEXT NOT NULL; ALTER TABLE user MODIFY plugin char(64) CHARACTER SET latin1 DEFAULT '' NOT NULL, MODIFY authentication_string TEXT NOT NULL; ALTER TABLE user ADD password_expired ENUM('N', 'Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL; |