PPK писал(а):Скорее всего эта таблица у вас была в формате InnoDB
При просмотре фарматов
.frm часто встречаются надписи
InnoDB
По Вашей ссылке нашла решение проблемы (
):
вот пришлось воспользоватся innodb-tools.
и всё вышло... как раз востанавливал из *.frm + *.ibd
выглядит это так:
1. Cкачать и скомпилировать innodb-tools в рабочую папку.
2. остановить базу, и скопировать файлы : *.ibd, скажем в папку ./db/
3. создать ( можно пустую ) структуру таблиц ( очень рекомендуется 100% порядок полей )
4. далее шаги применять к каждому *.ibd файлу по отдельности:
4.1. ./create_defs.pl --host=172.16.205.132 --user=dbuser --password=password --db=dbname --table=dbtable > include/table_defs.h
4.2. пересобрать скрипты: make
4.3. запустить парсер: ./page_parser -5 -f ./db/dbtable.ibd
4.4. протестировать: ./constraints_parser -5 -f ./pages-1306247264/0-93/4-00000004.page
4.5.1. еслти проблемы, поправить файл: include/table_defs.h, и перейти к п. 4.2.
4.5.2. еслти нет проблем, склеить страницы: find ./pages-1306244252/0-121/ -type f -name '*.page' | sort -n | xargs cat > ./pages-1306244252/dbtable_allpages
4.6. перегнать файл страниц в простой дамп: ./constraints_parser -5 -f ./pages-1306244252/dbtable_allpages > ./pages-1306244252/dbtables.tsv
4.7. убрать если надо - пустые и дубль записи, любым редактором, не портящим структуру.
4.8. ну и импортировать данные в базу данных:
LOAD DATA INFILE '/tmp/customer_data.tsv'
REPLACE INTO TABLE customer
FIELDS TERMINATED BY '\t'
OPTIONALLY ENCLOSED BY '"'
LINES STARTING BY 'customer\t'
(customer_id, store_id, first_name, last_name, email,
address_id, active, create_date, @last_update)
SET last_update = FROM_UNIXTIME(@last_update);
вот собственно и всё.
Только у меня все останавливается на шаге 4.1
А Вы раньше сталкивались с подобными проблемами? Я могла бы просто упаковать в архив, а Вы бы починили бы
, Я уверена, что у Вас получится намного быстрее, чем у меня