Назад | Перейти на главную страницу

MariaDB mysql_upgrade с 10.3.22 до 10.4.13 завершается с ошибкой «Указанный ключ слишком длинный»

Я использую Debian Buster и, казалось бы, уже работающую MariaDB 10.4.13 после обновления с 10.3.22. Однако рекомендуемый сценарий mysql_upgrade завершается неудачно со следующей ошибкой:

[..]
Phase 4/7: Running 'mysql_fix_privilege_tables'
ERROR 1071 (42000) at line 442: Specified key was too long; max key length is 1000 bytes
FATAL ERROR: Upgrade failed

Теперь этот вопрос был задан дважды на serverfault, но, к сожалению, без подходящих ответов. После дополнительных исследований это, вероятно, связано с тем, что сумма моих первичных ключей в некоторых основных таблицах mysql (не знаю, какие из них, поскольку ошибка не указывает их) может быть слишком длинной.

Моя БД, похоже, пока работает, но я хотел бы отладить ситуацию и не знаю, как бы я ее "атаковал". Я нашел кого-то в другом списке рассылки, который отбросил все таблицы mysql и повторно импортировал их из другой установки MariaDB, но я боюсь, что это может сломать БД.

Задача решена. В основных таблицах mysql были отклонения от значений по умолчанию. Я установил новый экземпляр MariaDB локально и сравнил схемы через

USE mysql; SHOW TABLE STATUS;

и выровнял любые различия. После этого сценарий обновления работал нормально.