1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-28915: mysql_upgrade fails due to old_mode="", with "Cannot load from

mysql.proc. The table is probably corrupted"

Analysis: When mysql_upgrade runs statements for upgrade, characterset is
converted to utf8mb4 because server starts with old_mode that interprets
utf8 to utf8mb4, but mysql.proc table has "utf8mb3" as hardcoded, so
it crashes with corrupted table.

Fix: Changed Table_check_intact::check() definition to allow both
utf8mb3 and utf8mb4 by checking prefix and changing the upgrade scripts
to explicitly use utf8mb3
This commit is contained in:
Rucha Deodhar
2022-10-21 15:43:17 +05:30
parent 6daccd4e48
commit 14275b4715
9 changed files with 841 additions and 208 deletions

View File

@@ -47,7 +47,7 @@ PREPARE stmt FROM @str;
EXECUTE stmt;
DROP PREPARE stmt;
SET @cmd= "CREATE DATABASE performance_schema character set utf8";
SET @cmd= "CREATE DATABASE performance_schema character set utf8mb3";
SET @str = IF(@broken_pfs = 0, @cmd, 'SET @dummy = 0');
PREPARE stmt FROM @str;