Estou tentando migrar do MySQL 5.7 para o MySQL 8.0 para o banco de dados da minha aplicação. No entanto, a pré-verificação falhou com um erro de incompatibilidade "25", informando que tabelas com formatos de linha redundantes não podem ter um índice maior que 767 bytes. A mensagem de erro também menciona que apenas 50 índices são exibidos.
Existe uma consulta ou método para identificar as tabelas problemáticas no meu banco de dados? Preciso descobrir quais tabelas no meu ambiente de produção podem ser afetadas por esse problema.
Você pode usar
information_schema.tables
.Esta consulta informa quantos formatos de linha diferentes por banco de dados
Para ver suas tabelas que possuem
ROW_FORMAT=REDUNDANT
, execute esta consultaSe estas são as tabelas que você deseja, você pode convertê-las para
ROW_FORMAT=Dynamic
.Aqui está a consulta para mostrar os comandos ALTER TABLE para alterar row_format para
Dynamic
(Esta é uma curiosidade histórica - não é realmente uma resposta; veja a resposta de Rolando.)
Dos registros de alterações:
De 5.0.3 (2005)
Até 8.0.26 (2021), ainda vejo bugs sutis no Redundant sendo corrigidos.