У вас может быть ошибка, связанная с версией. Я искал "mysql alter table повреждение среднего текста", и были некоторые ошибки, связанные с кодовыми страницами и наборами нелатинских символов.
Лучше всего провести опрос таблицы, сравнив ее с резервной копией. Если это таблица MyISAM, возможно, вы захотите воссоздать таблицу с включенной опцией CHECKSUM . Что говорит вам CHECK TABLE? Если у вас не работает ALTER TABLE, вы можете подумать о том, чтобы разделить поле со средним текстом в его собственную таблицу или дублировать содержимое таблицы, используя вариант INSERT ... SELECT:
CREATE TABLE b LIKE a;
ALTER TABLE b MODIFIY b.something MEDIUMTEXT;
INSERT INTO b SELECT * FROM a LIMIT x,1000;
-- now check those 1000 rows --
Вставив несколько строк за раз и проверив их, вы сможете определить, какой тип ввода плохо преобразуется.
Проверьте вывод dmesg и syslog, чтобы увидеть, есть ли у вас проблемы с RAM или диском. Я видел повреждения таблиц из-за ошибок ECC, плохих контроллеров рейда, плохих секторов и неправильной передачи по сети. Вы можете попробовать ALTER TABLE на сопоставимой машине и посмотреть, проверяется ли она.