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

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

Добрый день.

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

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

решение1

Если у вас есть весь файл /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) владеет всеми файлами и имеет права на чтение и запись.

Связанный контент