Добрый день.
На моем сервере 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) владеет и имеет доступ для чтения и записи ко всем файлам.