Восстановите базу данных mysql из файлов .frm

Я выкидывал все свои таблицы каждую неделю, чтобы получить резервную копию. Но позже я понимаю, что он хранит только файл .frm таблицы. Он не показывает .MYD и .MYI файлы таблицы. Таким образом, у меня есть только мой файл .frm базы данных, а также моя база данных - innodb. Так я могу получить свою базу данных с данными в базе данных?

 johnshen6407 июн. 2012 г., 17:24
как ты свалил? если вы использовали mysqldump, то вы должны получить операторы sql, которые можно использовать для восстановления данных или структуры таблицы, или и того и другого, если только вы не сбросили только структуру таблицы, в этом случае вы можете восстановить только структуру таблицы.

Ответы на вопрос(8)

https://dba.stackexchange.com/a/42932/24122

Я недавно испытал эту же проблему. Я нахожусь на Mac и поэтому использовал MAMP для восстановления базы данных до такой степени, что я мог бы экспортировать ее в дамп MySQL.

Вы можете прочитать полный пост в блоге об этом здесь:http://www.quora.com/Jordan-Ryan/Web-Dev/How-to-Recover-innoDB-MySQL-files-using-MAMP-on-a-Mac

Вы должны иметь:

-ibdata1

-ib_logfile0

-ib_logfile1

-FRM файлы из вашей папки mysql_database

-Установка MAMP / MAMP Pro, которую вы готовы уничтожить (при необходимости)

SSH into your web server (dev, production, no difference) and browse to your mysql folder (mine was at /var/lib/mysql for a Plesk installation on Linux) Compress the mysql folder Download an archive of mysql folder which should contain all mySQL databases, whether MyISAM or innoDB (you can scp this file, or move this to a downloadable directory, if need be) Install MAMP (Mac, Apache, MySQL, PHP) Browse to /Applications/MAMP/db/mysql/ Backup /Applications/MAMP/db/mysql to a zip archive (just in case)

Copy in all folders and files included in the archive of the mysql folder from the production server (mt Plesk environment in my case) EXCEPT DO NOT OVERWRITE:

-/Applications/MAMP/db/mysql/mysql/

-/Applications/MAMP/db/mysql/mysql_upgrade_info

-/Applications/MAMP/db/mysql/performance_schema

And voila, you now should be able to access the databases from phpMyAdmin, what a relief!

Но мы еще не закончили, теперь вам нужно выполнить mysqldump для восстановления этих файлов в вашей производственной среде, а время ожидания интерфейса phpmyadmin для больших баз данных истекло. Следуйте инструкциям здесь:

http://nickhardeman.com/308/export-import-large-database-using-mamp-with-terminal/

Скопировано ниже для справки. Обратите внимание, что при установке MAMP по умолчанию пароль является «root».

How to run mysqldump for MAMP using Terminal

База данных экспорта от MAMP [1]

Step One: Откройте новое окно терминала

Step Two: Перейдите к установке MAMP, введя следующую строку в терминале     CD / Applications / MAMP / библиотека / bin Нажмите клавишу ввода

Step Three: Напишите команду дампа     ./mysqldump -u [ИМЯ ПОЛЬЗОВАТЕЛЯ] -p [DATA_BASENAME] & gt; [Path_to_file] Нажмите клавишу ввода

Пример:

./mysqldump -u root -p wp_database > /Applications/MAMP/htdocs/symposium10_wp/wp_db_onezero.sql

Совет: чтобы быстро перейти к папке, вы можете перетащить папку в окно терминала, и она запишет местоположение папки. Это был замечательный день, когда кто-то показал мне это.

Step Four: Эта строка текста должна появиться после нажатия Enter Введите пароль: Так что угадайте, что, введите свой пароль, имейте в виду, что буквы не появятся, но они есть Нажмите клавишу ввода

Step Five: Проверьте место, где вы сохранили свой файл, если он там, УСПЕХ Теперь вы можете импортировать базу данных, которая будет изложена далее.

Теперь, когда у вас есть экспорт базы данных mysql, вы можете импортировать его в производственную среду.

QL, т.е. если у вас есть база данных с именем alto, найдите папку alto в вашем MySQL - & gt; Папка данных в вашей резервной копии и скопируйте всю папку alto и вставьте ее во вновь установленную MySQL - & gt; Папка данных, перезагрузите MySQL, и это прекрасно работает.

 06 мая 2015 г., 14:09
Перезапуск был ключевым моментом здесь - хороший!
 21 июл. 2016 г., 06:12
Обязательно сначала остановите MYSQL.

.frm файлы в папку базы данных, но вам также необходимо скопироватьib_logfiles а такжеibdata файл в вашу папку данных. Я только что скопировал.frm файлы и скопируйте эти файлы и просто перезагрузите сервер, и моя база данных будет восстановлена.

 23 янв. 2014 г., 10:08
Спасибо ... это работает ...
 09 янв. 2014 г., 11:07
Лучший ответ когда-либо! Спасибо огромное!
 26 июл. 2014 г., 10:22
Что делать, если у меня есть три старые базы данных, перемещенные в одну, в которой уже есть несколько баз данных?
 19 июн. 2018 г., 14:43
Не работает. Произошла ошибка.
 04 дек. 2015 г., 22:01
Может ли кто-нибудь, проходящий через эту ветку, дать ответ на последующий комментарий выше, опубликованный 26 июля в 8:22? ТИА.

xampp/mysql/data/[databasename]/

вам также понадобится файл ibdata который находится внутри

xampp/mysql/data/ скопируйте предыдущий файл ibdata1 вставить в вставить файл и заменить его существующим файлом ibdata

[caution: you may loose the contents of the database which are newly created in the new ibdata file]

по крайней мере, перезапустить службы при появлении запроса на их запуск.

На старом экземпляре сервера перейдите в папку данных MySQL по умолчанию, это должно выглядеть примерно так:C:\wamp\bin\mysql\mysql5.1.53\data\ гдеmysql5.1.53 будет номером версии ранее установленной базы данных MySQL.

Внутри этой папки вы должны увидеть несколько файлов и папок. Папки являются фактическими базами данных MySQL и содержат кучу файлов .frm, которые нам потребуются. Вы должны распознавать имена папок как имена баз данных. Эти папки и все их содержимое могут быть скопированы непосредственно в вашу папку данных MySQL, вы можете пренебрегать базами данных по умолчанию mysql, performance_schema, test.

Если вы запустили сервер сейчас, вы увидите, что базы данных подобраны, однако базы данных не будут содержать ни одной из таблиц, которые были скопированы. Чтобы содержимое базы данных было выбрано, вернитесь в папку данных и увидите файлibdata1это файл данных для таблиц, скопируйте его прямо в папку данных, у вас уже должен быть файл в новой папке данных с именем & # x201C; ibdata1 & # x2033; так что вы можете переименовать это вibdata1.bak перед копированием поibdata1 из старой папки данных MySQL.

Как только это будет сделано, перезапустите все службы WAMP. Вы можете использовать PhpMyAdmin, чтобы проверить, были ли успешно восстановлены ваши базы данных.

Я использовалmysqlfrm который является отличным инструментом, который генерирует создание таблицы SQL-кода из файлов .frm. Я получал эту неприятную таблицу не найдена ошибка, хотя таблицы были перечислены. Таким образом, я использовал этот инструмент для восстановления таблиц. В Ubuntu вам нужно установить это как:

sudo apt install mysql-utilities

затем,

mysqlfrm --diagnostic mysql/db_name/ > db_name.sql

Создайте новую базу данных, а затем вы можете использовать,

mysql -u username -p < db_name.sql

Тем не менее, это даст вам таблицы, но не данные. В моем случае этого было достаточно.

 19 июн. 2017 г., 10:21
это даст вам только таблицы, но не данные?
 06 июл. 2017 г., 09:25
спасибо за указание на опечатку. ответ отредактирован

после этого вы должны изменить владельца файлов наmysql this is so important if mariadb.service restart has been faild

chown -R mysql:mysql /var/lib/mysql/*

а также

chmod -R 700 /var/lib/mysql/*

Я мог восстановить только файлы frm после аварии, по крайней мере, я мог получить структуру таблицы из файлов FRM, выполнив следующие действия:

1. Создайте несколько фиктивных таблиц, по крайней мере, с одним столбцом и SAME NAME с файлами frm в новой базе данных mysql.

2-стопный сервис MySQL

3 - скопируйте и вставьте старые файлы frm во вновь созданные файлы таблиц frm, вам будет предложено перезаписать их или нет для каждого из них. заменить все.

Служба mysql с 4 запусками, и у вас есть структура вашей таблицы ...

С уважением. anybudy

 20 авг. 2016 г., 00:11
любой способ восстановить данные таблиц из файлов .frm?
 30 сент. 2015 г., 22:42
Большое спасибо и от меня, это спасло мою ночь!
 03 окт. 2015 г., 21:37
Не работал для меня. В таблице не существует ошибки. хотя я могу видеть столбцы.
 21 февр. 2017 г., 09:44
У меня такая же проблема. Я также хочу восстановить только из файлов .frm. Есть ли способ?
 30 сент. 2015 г., 16:03
Уважаемый анонимный пользователь, вы спасли мне жизнь сегодня! Это отлично сработало для меня! Простого копирования файлов .frm было недостаточно.

Ваш ответ на вопрос