Cannot find an index in the referenced table where the referenced columns appear as the first columns, or column types in the table and the referenced table do not match for constraint.
Quando você tenta criar uma CHAVE ESTRANGEIRA, mas continua recebendo o erro acima no seu status do InnoDB , você vê que a definição da sua coluna é a mesma e que você obteve um índice na tabela a partir da qual está tentando fazer o link, então o que mais poderia estar? Você já olhou para o conjunto de caracteres das tabelas / colunas?
Passei quase uma hora antes de perceber que o banco de dados legado tinha a tabela original latin1
e a nova tabela que eu estava tentando vincular utf8
.
Então, um rápido ALTER TABLE tbl CONVERT TO CHARACTER SET utf8;
e, em seguida, a chave estrangeira foi inserida.