Я извлек каталог данных mysql из резервной копии, и мне нужно получить схему из старой таблицы, однако это резервная копия с другого компьютера.
Сегодня я прочитал немало учебников о том, как это сделать, но каждый раз, когда это кажется неудачным, или мне приходится переустанавливать mysql из-за зависания или сбоя mysql. Я пробовал следующее:
- Создать другую базу данных
- Создать таблицу с тем же именем в этой базе данных
- Заменить файл
- Стоп / Пуск двигателя
- Восстановить из
.frm
файла
Я пробовал в различных заказах и комбинациях.
Есть ли какой-либо внешний инструмент, который может извлечь схему из .frm
файла? Я могу увидеть имена столбцов, если я открою файл. Я посмотрел, но не могу найти ничего, что позволило бы мне это сделать.
Заранее спасибо.
Ответы:
В TwinDB мы создали веб-интерфейс для
mysqlfrm
. Это бесплатно и легко в использовании.Чтобы восстановить структуру таблицы, вам просто нужно загрузить файл .frm.
Вот шаги. 1. Откройте https://recovery.twindb.com/ . Нажмите «Восстановить структуру»
В следующем подменю нажмите «из .frm файла»
В следующем окне нажмите «Обзор» и выберите файл .frm на локальном диске. Нажмите «Загрузить»
Подождите, пока он не сделает волшебство
Получить восстановленную структуру.
Также возможно загрузить архив с кучей файлов .frm. Сайт полностью их восстановит.
источник
mysqlfrm
(я скачал версию 1.6.5) и запустите этоmysqlfrm --diagnostic /path/to/my_table.frm
Я уже отвечал на такие вопросы раньше
Dec 21, 2011
: Сжатие таблицы в InnoDB?Feb 03, 2012
: Как восстановить MySQL структуру таблицы из FRM файловApr 23, 2012
: Восстановить таблицу из .frm и .ibd файл?Я сослался на блог Криса Календаря о подключении
.ibd
файлов обратно к словарю данных.Если у вас нет
.ibd
с этим.frm
, скорее всего, MySQL работал с отключенной innodb_file_per_table . Пожалуйста, обратитесь кFeb 03, 2012
посту об этом. Если это Linux, убедитесь, что вы запустилиперед запуском mysql.
Попробуйте!
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
В нижней части этого последнего блога написано:
ОБНОВЛЕНИЕ 2013-06-11 14:05 ПО ВОСТОЧНОМУ ВРЕМЕНИ
У меня хорошие новости. Я установил версию MySQL для Windows. Я тестировал программу mysqlfrm из командной строки. Я протестировал получение
.frm
информации от user.frm в схеме mysql. Вот что я получил:Это реально работает. База данных работает на моем настольном компьютере с использованием порта 3306. Мне нужно было указать 3307 как порт для запуска порожденного процесса.
Я мог бы переместить
.frm
с Linux на компьютер с Windows и сделать то же самое.Попробуйте!
источник