Таблица восстановления MySQL из проблемы XAMPP

Раньше я полагался на XAMPP в своей Kubuntu 18.04, которая находилась в /opt/lampp. Я удалил XAMPP, и перед этим у меня была целая резервная копия папки в этом каталоге, и мне не терпелось установить весь стек LAMP по отдельности, после чего я установил apache2, mysql-server и phpmyadmin.

Дело в том, что я хочу импортировать свои базы данных из моей резервной копии папки XAMPP, расположенной в /opt/lampp/var/mysql, которая состоит из всех моих баз данных с таблицами в формате .frm и .ibd, которые, очевидно, существуют, в мое текущее установленное расположение базы данных пакета mysql в /var/lib/mysql.

После того, как я переместил эти базы данных, я открыл phpmyadmin, чтобы убедиться, что базы данных импортированы правильно, но я увидел только базу данных без таблицы внутри базы данных. Почему? Что нужно сделать, чтобы восстановить таблицы внутри?


person Vicky Sultan    schedule 11.04.2020    source источник
comment
попробуйте dba .stackexchange.com/questions/16875/   -  person nbk    schedule 11.04.2020


Ответы (1)


Вы не можете просто скопировать файлы базы данных из каталога данных (в вашем случае /var/lib/mysql). Правильная резервная копия MySQL/MariaDB заключается в создании файлов .sql, которые затем можно импортировать независимо. Невозможно выборочно восстановить определенные базы данных из-за способа управления определенными файлами (например, ibdata1 и, возможно, другими, такими как файлы журналов).

Что бы я попробовал и может сработать, а может и не сработать (применяются обычные заявления об отказе от резервных копий, я не несу ответственности, если ваша система выйдет из строя или загорится и т. д.):

  1. Сделайте резервную копию ваших существующих баз данных (для SQL я использую утилиту командной строки mysqldump, которая поставляется с MySQL/MariaDB).
  2. Остановите демон MySQL и убедитесь, что он не запущен.
  3. Временно переместите ваш текущий каталог данных (возможно, с помощью такой команды, как mv /var/lib/mysql /var/lib/mysql-current).
  4. Скопируйте полную резервную копию, весь каталог данных MySQL (из старого XAMPP /opt/lampp/var/mysql) в /var/lib/mysql.
  5. Запустите демон MySQL.
  6. Подключайте и экспортируйте любые данные, которые вы хотите сохранить в файлы SQL.
  7. Остановить демона.
  8. Переместите текущую /var/lib/mysql в сторону (или, если вы смелы, удалите ее полностью).
  9. Восстановите исходные файлы из /var/lib/mysql-current в исходное расположение в /varlib/mysql.
  10. Запустите демон снова
  11. Импортируйте файлы SQL, созданные на шаге 6.

Вот и все — теперь у вас должны быть все настройки с исходными данными в новой базе данных.

person Isaac Bennetch    schedule 13.04.2020
comment
Проблема в том, что я не могу получить доступ к своим старым базам данных на XAMPP phpmyadmin, он говорит, что в движке не существует какой-то таблицы, хотя он четко показывает таблицы внутри баз данных. Так что я не могу сбросить свои базы данных, я думаю - person Vicky Sultan; 13.04.2020
comment
Вы выполнили все шаги, включая остановку демона и полное перемещение текущего каталога данных? - person Isaac Bennetch; 13.04.2020