Во-первых, мои навыки работы с MySQL и Linux не так хороши. Я потратил несколько дней на поиски решения и попробовал несколько подходов. Следующий подход - тот, к которому я пришел больше всего.
Моя SD-карта, на которой была установлена моя MariaDB, повреждена. Однако мне удалось восстановить каталог / var / lib / mysql.
Я установил новую установку Ubuntu и чистую базу данных MySQL. После того, как я скопировал восстановленные каталоги базы данных в новую папку (без ibdata) и перезапустил базу данных, я мог видеть таблицы, но получил сообщение об ошибке «Таблица 1146 не существует».
Затем я также скопировал файл ibdata и изменил разрешения (chmod, chown, chgrp). Но после этого я больше не могу запускать службу MySQL. Я получаю следующую ошибку:
[Примечание] InnoDB: Если пользователь, выполняющий mysqld, авторизован, приоритет потока очистки страниц может быть изменен. См. Страницу руководства по setpriority ().
[ОШИБКА] InnoDB: невозможно создать файлы журнала в режиме только для чтения
[ОШИБКА] InnoDB: инициализация плагина прервана с ошибкой Транзакция только для чтения
[ОШИБКА] Функция инициализации плагина InnoDB вернула ошибку.
[ОШИБКА] Не удалось зарегистрировать плагин InnoDB как ДВИГАТЕЛЬ ХРАНИЛИЩА.
[ERROR] Не удалось инициализировать встроенные плагины.
[ERROR] Прерывание
Я безуспешно пробовал innodb_force_recovery 0-6.
У кого-нибудь есть подсказка для меня, что означает ошибка и как я могу восстановить свою базу данных?
Кажется, ваш каталог MySQL находится в режиме только для чтения: [ERROR] InnoDB: Cannot create log files in read-only mode
. Убедитесь, что у вас есть права на запись в каталог и файлы внутри него.
Тем не менее, если ваша SD-карта вышла из строя, есть вероятность, что сами данные будут повреждены без возможности восстановления.