Не удается получить доступ к данным MySQL

Я использую AppServ, который включает функции MySQL, PHP, Apache24 и phpMyAdmin.

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

Я почему-то не могу получить доступ к своим данным, как и сайты, которые я создал до того, как случилась авария. Когда я захожу в свой phpMyAdmin, я ясно вижу структуры, которые я создал, но не их содержимое, что и является проблемой. На самом деле, они все стоят там, когда я вижу их в каталоге.

Здесь вы видите, что данные не существуют, но на самом деле они существуют

Это вид из каталога, и я полагаю, все выглядит хорошо

Заранее спасибо.

ПРИМЕЧАНИЕ. Процесс удаления AppServ не удаляет ваши собственные данные.


person Masea    schedule 04.07.2018    source источник
comment
Пожалуйста, создайте архив и загрузите куда-нибудь и задайте свой вопрос. давайте попробуем восстановить и предоставить дамп sql. или добавь меня в скайп: anarjafarov я тебе помогу   -  person num8er    schedule 05.07.2018
comment
Что вы подразумеваете под архивом?   -  person Masea    schedule 05.07.2018
comment
Я имею в виду, поместите эти файлы куда-нибудь, я скачаю и попробую исправить.   -  person num8er    schedule 05.07.2018
comment
Вы имеете в виду файлы данных?   -  person Masea    schedule 05.07.2018
comment
Я добавил тебя в скайп. Пожалуйста, проверь это!   -  person Masea    schedule 05.07.2018


Ответы (1)


Чтобы восстановить базу данных из .frm и содержимое из .ibd, вам необходимо сделать следующее:

1) создайте временную базу данных, чтобы избежать внезапной работы с другими базами данных.

CREATE DATABASE soru_sor_recover;

2) создать CREATE TABLE дампов из .frm файлов (вам потребуется установить mysql-utilities отсюда) ;

mysqlfrm –diagnostic answers.frm >> create_table.txt
mysqlfrm –diagnostic categories.frm >> create_table.txt
mysqlfrm –diagnostic inbox.frm >> create_table.txt
mysqlfrm –diagnostic questions.frm >> create_table.txt
mysqlfrm –diagnostic users.frm >> create_table.txt

3) импортировать create_table.txt с помощью графического интерфейса или просто через терминал:

mysql -u root -p soru_sor_recover < create_table.txx

4) теперь у нас есть столы, но они пусты. поэтому мы должны заменить .ibd файл пустых таблиц на ibd файлы восстановления. поэтому нам нужно отказаться от табличного пространства:

ALTER TABLE answers DISCARD TABLESPACE; 
ALTER TABLE categories DISCARD TABLESPACE; 
ALTER TABLE inbox DISCARD TABLESPACE; 
ALTER TABLE questions DISCARD TABLESPACE; 
ALTER TABLE users DISCARD TABLESPACE; 

5) заменить .ibd файлов в папке данных и определить пользователя и группу для этих файлов:

cp *.ibd /var/lib/mysql/soru_sor_recover
chown -R mysql:mysql /var/lib/mysql/soru_sor_recover/*.ibd

6) перезапустить mysql:

/etc/init.d/mysql restart

7) включить табличные пространства, перейти в консоль mysql:

ALTER TABLE answers IMPORT TABLESPACE; 
ALTER TABLE categories IMPORT TABLESPACE; 
ALTER TABLE inbox IMPORT TABLESPACE; 
ALTER TABLE questions IMPORT TABLESPACE; 
ALTER TABLE users IMPORT TABLESPACE; 

исходный источник документации здесь

person num8er    schedule 06.07.2018
comment
Ты прекрасна в каждом слове. Большое спасибо за все это ваше желание! - person Masea; 06.07.2018