Thodorompalos Ответов: 2

Восстановление базы данных mysql из файлов после обновления до новой версии XAMPP


Hello! I have a problem with a MySQL database that I haven’t been able to solve no matter how much I tried, either with internet guides or with free tools. I really don’t want to pay hundreds of dollars to a company so please, if anyone knows of a solution, help me because I’m desperate.

I was running XAMPP 7.1.22 where I had said database and I decided to install XAMPP 7.2.10 without backing up the database. After that, the site wasn’t working so I figured the problem was the database. And indeed PHPMyAdmin wouldn’t recognize it. I reinstalled the previous version of XAMPP and the database was there but unfortunately I could only see the tables. The tables themselves were empty though. So no dump procedure worked and neither the site. Now all I have left is the folder with the database which contains all the .frm and the .ibd files, an .opt file, a .myd file and a .myi file. I also have the ibdata1 file. 

Any ideas or suggestions? Thank you very much for your time.


Что я уже пробовал:

I haven’t been able to solve no matter how much I tried, either with internet guides or with free tools.

2 Ответов

Рейтинг:
1

summiya1

Прежде всего остановил мой сервис MySQL с помощью XAMPP

затем переместите ваши файлы ib* files и папку, содержащую файлы *.frm, в локальную папку данных mysql

(C:\Program Files\xampp\mysql\data)

затем отредактируйте файл my.cnf
(located in C:\Program Files\xampp\mysql\bin)
и внес следующие изменения (начиная со строки 66 или проверьте свой файл на наличие строки ):
OLD:
skip-innodb
#innodb_data_home_dir = C:/Program Files/xampp/mysql/data/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = C:/Program Files/xampp/mysql/data/
#innodb_log_arch_dir = C:/Program Files/xampp/mysql/data/
#set-variable = innodb_buffer_pool_size=16M
#set-variable = innodb_additional_mem_pool_size=2M
#set-variable = innodb_log_file_size=5M
#set-variable = innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#set-variable = innodb_lock_wait_timeout=5

#skip-innodb
innodb_data_home_dir = C:/Program Files/xampp/mysql/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = C:/Program Files/xampp/mysql/data/
innodb_log_arch_dir = C:/Program Files/xampp/mysql/data/
set-variable = innodb_buffer_pool_size=16M
set-variable = innodb_additional_mem_pool_size=2M
set-variable = innodb_log_file_size=170M
set-variable = innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
set-variable = innodb_lock_wait_timeout=50

установите innodb_log_file_size в фактический размер моего файла журнала, а затем отредактируйте пакетный файл XAMPP, который запускает службу mysql
(C:\Program Files\xampp\mysql_start.bat)

добавьте –innodb_force_recovery=6 к концу вызова mysqld.
Итак, строка 8 этого файла теперь
mysql\bin\mysqld –defaults-file=mysql\bin\my.cnf –standalone –console –innodb_force_recovery=6


Thodorompalos

Привет. Спасибо за ваш ответ, но после того, как я выполню указанные вами шаги, MySQL не запустится. Кроме того, когда вы говорите о фактическом размере файла журнала, Вы имеете в виду стандартный файл XAMPP или старый, который шел вместе с базой данных? Потому что я тоже пытался это сделать, но у меня ничего не вышло. В любом случае еще раз спасибо, и если вы можете помочь мне дальше, я буду очень признателен.

Рейтинг:
0

Thodorompalos

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