Как я могу восстановить таблицы MySQL из файлов данных? - PullRequest
1 голос
/ 27 сентября 2010

У меня есть база данных (все таблицы MyISAM), и машина, на которой работал MySQL, больше не является загрузочной.Однако у нас есть все файлы данных MySQL из каталога данных.Как я могу восстановить данные из файлов MYD и FRM или любых других файлов, которые мне нужно посмотреть в каталоге данных?

Я провел некоторые поиски по этому вопросу, и, похоже, для MyISAM я просто должен иметь возможность скопировать подкаталог базы данных из старого каталога данных MySQL в новый каталог данных MySQL.Тем не менее, это не работает для меня.База данных с именем базы данных, которую я пытаюсь восстановить, отображается в списке баз данных в phpMyAdmin, но все таблицы показывают "в использовании" и не имеют информации (например, количество строк, количество байтов, информация о столбце)., так далее.).Любая операция с этими таблицами (например, SELECT * FROM {таблица}, REPAIR {таблица}, CHECK {таблица}) возвращает ошибку «нет такой таблицы».

Один из инструментов, с которыми я столкнулся при поискеявляется DBACentral MicroOLAP.У него есть компонент, который должен восстанавливать данные из файлов FRM / MYD, но когда я попытался запустить его, в нем не было никаких таблиц, которые он мог бы восстановить из моих файлов FRM / MYD.

Это рабочая станция разработчика под управлением Vista Business 32bit.Версия MySQL 5.0.27.После исправления машины, я пошел и получил точно такую ​​же версию MySQL (v5.0.27), думая, что если я просто собираюсь добавить двоичные файлы данных, я должен сделать это с той же версией MySQL.Это все еще не работает.

Любые идеи будут с благодарностью ... спасибо!

-Джош

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011
  1. Установите ту же версию mysql.
  2. Удалите каталог mysql из каталога данных сервера и скопируйте его с аварийного сервера. Это ключевой элемент
  3. скопировать каталог базы данных, который вы хотите восстановить, в каталог данных нового сервера
  4. start mysql.
  5. переключиться на mysql база данных: USE mysql; и запуск REPAIR TABLE <table name> для каждой таблицы.
  6. Сделайте то же самое с базой данных, которую вы хотите восстановить

Совет: убедитесь, что 2 каталогаимеют те же разрешения, что и каталог данных

Если вы не сохранили базу данных mysql (каталог mysql в каталоге данных вашего старого сервера, то вы можете попытаться:

  1. создать базу данных с помощьюто же имя, что и для базы данных, которую вы хотите восстановить.
  2. Затем вы можете создать каждую таблицу (было бы хорошо использовать ту же структуру - у вас больше шансов на восстановление).
  3. затемостановите сервер MySQL и удалите файлы из каталога базы данных и перезапишите их файлами со старого сервера
  4. запустите MySQL и восстановите каждую таблицу.
0 голосов
/ 24 октября 2012

Я закончил, сдаваясь. Я думаю, что ответ заключается в том, что с моей конкретной версией MySQL это не работает. Надеюсь, что с тех пор ситуация улучшилась.

...