Назад | Перейти на главную страницу

MariaDB - импортировать необработанные файлы InnoDB frm / ibd?

Добрый день.

На моем сервере Debian 9 возникла проблема, из-за которой ОС стала недоступна, мне удалось извлечь все необработанные файлы базы данных (/ var / lib / mysql) для моего проекта, но, к сожалению, тип движка был установлен на InnoDB.

Есть ли шанс как-нибудь восстановить базу данных? Спасибо.

Если у вас есть весь /var/lib/mysql тогда вам, вероятно, следует попробовать полностью заменить текущее содержимое /var/lib/mysql с имеющимся у вас контентом.

В зависимости от ваших опций mariadb / mysql некоторые или все данные innodb являются глобальными и хранятся в /var/lib/mysql/ibdata1, и /var/lib/mysql/ib_logfile файлы. Так что просто восстанавливая /var/lib/mysql/databasename/table* Обычно этого недостаточно для восстановления данных innodb.

Вы можете временно переместить текущее содержимое этого каталога в другое место, если вы уже восстановили или начали его использовать. Или даже лучше временно запустить новую машину в виртуальной машине или что-то еще, где вы можете протестировать восстановление всего /var/lib/mysql каталог, ничего не прерывая.

После размещения ваших старых данных в /var/lib/mysql вы должны иметь возможность запустить сервер и, надеюсь, извлечь свои данные. Вам может потребоваться запустить mariadb с опциями для обхода привилегий в зависимости от того, насколько заблокированы ваши привилегии. Я бы не стал продолжать использовать это, вместо этого я бы предложил на этом этапе использовать mysqldump или ваши любимые инструменты для сброса базы данных, а затем повторно импортировать ее в свою производственную базу данных.

При перемещении назад убедитесь, что учетная запись службы mysql / mariadb (обычно mysql / mysql) владеет и имеет доступ для чтения и записи ко всем файлам.