Можно ли восстановить базу данных MySQL из файлов физической базы данных. У меня есть каталог со следующими типами файлов:
client.frm
client.MYD
client.MYI
но еще примерно на 20 столов.
Я обычно использую mysqldump или аналогичный инструмент, чтобы получить все в одном файле SQL, так что же делать с этими типами файлов?
Ответы:
Таблица MySQL MyISAM представляет собой комбинацию трех файлов:
Вы должны иметь возможность восстановить, скопировав их в папку своей базы данных (в Linux расположение по умолчанию
/var/lib/mysql/
)Вы должны делать это, пока сервер не работает.
источник
mysql
пользователь, выполняющийmysqld
процесс, не мог получить к ним доступ. Сделать achmod -R mysql:mysql .
в каталоге данных mysql быстро и легко, но выяснение до этого, почему все мои повторно обновленные БД, похоже, не имеют таблиц, заняло немного больше времени.chown
скопировать файлы следующим образом:sudo chown -R mysql:mysql /var/lib/mysql
Из ответа @Vicent я уже восстанавливаю базу данных MySQL, как показано ниже:
Шаг 1. Выключите сервер Mysql.
Шаг 2. Скопируйте базу данных в папку с базой данных (в Linux расположение по умолчанию - / var / lib / mysql). Сохраните то же имя базы данных и то же имя базы данных в режиме mysql.
Шаг 3: Измените свою и измените режим папки:
Шаг 4. Скопируйте ibdata1 в папку базы данных.
Шаг 5: скопируйте файлы ib_logfile0 и ib_logfile1 в папку вашей базы данных.
Не забудьте изменить собственный и изменить корень этих файлов:
или
Шаг 6 (необязательно): у моего сайта есть конфигурация для хранения файлов в определенном месте, затем я точно копирую их в соответствующее место.
Шаг 7: Запустите сервер Mysql. Все вернусь и наслаждайся.
Вот и все.
См. Дополнительную информацию по адресу: https://biolinh.wordpress.com/2017/04/01/restoring-mysql-database-from-physical-files-debianubuntu/
источник
Если вы восстанавливаете папку, не забудьте указать файлы в mysql: mysql,
chown -R mysql:mysql /var/lib/mysql-data
иначе вы получите ошибки при попытке удалить базу данных или добавить новый столбец и т. Д.
и перезапустите MySQL
источник
У меня та же проблема, но я не смог успешно восстановить базу данных согласно приведенным выше инструкциям.
Мне удалось восстановить только папки базы данных mysql из моей ОС Ubuntu. Моя проблема в том, как восстановить мою базу данных с этими нечитаемыми папками данных mysql. Поэтому я снова переключился на ОС win7 для среды разработки.
* ПРИМЕЧАНИЕ. У меня есть существующий сервер базы данных, работающий в Win7, и мне нужно только несколько файлов базы данных для извлечения из восстановленных файлов. Чтобы успешно восстановить файлы базы данных из ОС Ubuntu, мне нужно заново установить сервер базы данных mysql (та же версия из ОС Ubuntu в моей ОС win7), чтобы восстановить все на этом старом сервере базы данных.
Сделайте другой новый сервер базы данных mysql той же версии из восстановленных файлов.
Остановите сервер mysql
скопируйте восстановленную папку и вставьте в (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data) база данных mysql.
скопируйте файл ibdata1, расположенный в установленной папке linux mysql, и вставьте его в (C: \ ProgramData \ MySQL \ MySQL Server 5.5 \ data). Просто перезапишите существующий или сделайте резервную копию перед заменой.
запустите сервер mysql и проверьте, успешно ли вы восстановили файлы базы данных.
Чтобы использовать восстановленную базу данных на моем текущем сервере mysql, просто экспортируйте восстановленную базу данных и импортируйте ее на мой существующий сервер mysql.
Надеюсь, это поможет, потому что у меня больше ничего не работало.
источник
С MySql 5.1 (Win7). Чтобы воссоздать БД (InnoDbs), я заменил все содержимое следующих каталогов (параметры my.ini):
После этого я запустил службу MySql, и все работает нормально.
источник
Да, это! Просто добавьте их в папку с базой данных (в зависимости от ОС) и выполните такую команду, как «MySQL Fix Permissions». Это восстановило базу данных. Также убедитесь, что для файлов установлены правильные разрешения.
источник
Однажды я скопировал эти файлы в папку хранения базы данных для базы данных mysql, которая работала, запустил базу данных и подождал, пока она «восстановит» файлы, а затем извлек их с помощью mysqldump.
источник
Я столкнулся с этим, пытаясь восстановить случайно удаленный контейнер Docker (MySQL oraclelinux) из тома докера, который, к счастью, не был удален, с данными БД в физических файлах.
Итак, все, что я хотел сделать, это превратить данные из физических файлов в
.sql
импортируемый файл, чтобы воссоздать контейнер с БД и данными.Я попробовал раствор биолина , но наткнулся на
[InnoDB] Multiple files found for the same tablespace ID
после перезапуска ошибками. Я понял, что делать открытую операцию по повреждению определенных папок / файлов довольно сложно.Решение , которое работало для меня было временно изменяя
datadir=
вmy.cnf
к доступной папке и перезапуск сервера MySQL. Он отлично справился со своей задачей!источник
В моем случае простого удаления tc.log в / var / lib / mysql было достаточно, чтобы снова запустить mariadb / mysql.
источник