MySQL ключ был слишком длинным вопросом
Я пытался импортировать свою резервную копию после того, как я изменил кодировку на utf8 с latin1, теперь во время импорта я получил эту ошибку ERROR 1071 (42000) в строке 2137: указанный ключ был слишком длинным; максимальная длина ключа составляет 1000 байт. Попробуйте изменить my.cnf и установить все наборы символов и соединение в utf8, но теперь удача, я не хочу возвращаться в latin1, и я знаю, что это решит проблему, но utf8 мой вопрос, какая подсказка? я знаю латинский 1 байт = 1 символ и utf8 3 байт = 1 ..
3 ответа
Можете ли вы переключиться с MyISAM на InnoDB, кажется, решить проблему..
Хотя UTF-8 не всегда составляет 3 байта для каждого символа, MySQL резервирует 3 байта на символ для индексов.
Если ваше приложение допускает это (т. Е. Оно не используется в ограничении UNIQUE KEY), переопределите / ALTER таблицы, чтобы использовать префиксный ключ соответствующей длины (т. Е. <1000/3).
CREATE TABLE my_table.... KEY my_field_20 (my_field (20));
Используйте параметр --force в вашей команде mysqldump, он проигнорирует ошибку и продолжит резервное копирование.