Если вы хотите, чтобы структура имела определенный размер с GCC, например, используйте __attribute__((packed))
.
В Windows вы можете установить выравнивание в один байт при использовании cl .exe компилятор с опцией / Zp .
Обычно ЦП получает доступ к данным, который является кратным 4 (или 8), зависящей от платформы, а также от компилятор.
Итак, это вопрос выравнивания в основном.
У вас должны быть веские причины для его изменения.
Файлы .frm не являются файлами данных, они просто хранят "информацию словаря данных" (см. руководство MySQL). InnoDB хранит свои данные в ib_logfile* файлы. Это - то, в чем Вы нуждаетесь, чтобы сделать резервное копирование/восстановление. Для получения дополнительной информации посмотрите здесь.
О, мой... Вы в беде. Завершите работу базы данных. Скопируйте innodb файл. Молитесь НИЧЕГО не сделать после отбрасывания базы данных.
Парни в Percona (включает авторов MySQL Performance Blog) должны смочь выручить Вас: поддержка чрезвычайной ситуации Percona.
Если Вы действительно рискуете самостоятельно, возьмите это с Вами: Инструментарий Восстановления данных для Innodb.
Логистика его? Необходимо прочитать каждую страницу (компьютерная страница термина... Блок 16k в случае Innodb) в и восстанавливают Ваши данные тот путь. Это - работа очень низкого уровня (мы говорим, открывают Ваш Hex-редактор и начинают считать байты, если инструментарий не делает этого для Вас), и если Вы не решительно опытный программист, Вы собираетесь быть причинением вреда.