Вы, кажется, путаете сортировку и набор символов.
- Набор символов определяет, какие символы известны.
- Сортировка определяет порядок сортировки в наборе символов. Это необходимо для сравнения.
Ваш набор символов - utf8, ваша сортировка - utf8_general_ci.
Итак, на самом деле вы ничего не должны делать.
create table colly(a varchar(2) collate utf8_general_ci);
select * from information_schema.columns where table_schema = 'playground'
and table_name = 'colly'\G
*************************** 1. row ***************************
TABLE_CATALOG: NULL
TABLE_SCHEMA: playground
TABLE_NAME: colly
COLUMN_NAME: a
ORDINAL_POSITION: 1
COLUMN_DEFAULT: NULL
IS_NULLABLE: YES
DATA_TYPE: varchar
CHARACTER_MAXIMUM_LENGTH: 2
CHARACTER_OCTET_LENGTH: 6
NUMERIC_PRECISION: NULL
NUMERIC_SCALE: NULL
CHARACTER_SET_NAME: utf8
COLLATION_NAME: utf8_general_ci
COLUMN_TYPE: varchar(2)
COLUMN_KEY:
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
1 row in set (0.00 sec)
Не знаю, что вы имеете в виду свой комментарий, но вот эти две строки
CHARACTER_SET_NAME: utf8
COLLATION_NAME: utf8_general_ci
указывают на то, что я сказал выше.
Вы уверены, что у вас есть сверку доступный с именем 'utf_8'? Наиболее распространенными являются 'utf8_general_ci',' utf8_bin' и 'utf8_unicode_ci'. – DanFromGermany
Сделайте резервную копию и try'n'error с несколькими меньшими таблицами, содержащими символы utf8. – DanFromGermany