повторно задаю вопрос, ответ очень важен :(
помогите, не знаю, где прочитатьТакая вот проблема:
Полетел диск на сервере с базой данных mysql.
Данные (директории с базами данных) скопировали на другую машину, поставили туда такой-же mysql.
После запуска нового сервера mysql оказалось, что таблицы MyIsam нормально сохранились, а от таблиц INNODB осталась только структура (без данных).
Путем долгих рассуждений мы пришли к (возможно неправильному) выводу, что данные больших таблиц по дефолту хранятся в файлах вида ibdata1, ibdata0 и не в каталоге базы данных, а выше, в каталоге данных (/usr/local/mysql/var).
Так ли это ?
Даже если полностью восстановить структуру /usr/local/mysql/var, все равно ничего не получается - большие таблицы не открываются
файлы не битые, мы их сверили с исходнымСервер на все попытки обратиться к этим таблицам пишет, что
#1016 - Can't open file: 'strings.InnoDB'. (errno: 1)Как можно оживить базу, с учетом, что у нас есть все файлы, которые хранились на том сервере ?
Доподлинно не скажу... практики не было.
А так в прочем innDB только описание храниться в файлах .frm .
А сами данные хранять обчно в файлах дата-дир... в общем правильно думал("в файлах вида ibdata1, ibdata0")! Но вообще-то это настраивается в my.cnf.
Проверь права доступа, владельца, потом для восстановления тебе надо что-бы параметры (из my.cnf) для InnoDB были и в новом сервере. Иначе пространство innoDB не инициализируется... или хз что... далее в общем
#mysqld_safe &
Он должен проверить и инициализировать пространство, если хрен, то попробуй добавить в my.cnf в раздел [mysqld]
set-variable = innodb_force_recovery=4 (вообще-то 1-6 но начни с 4)
Потом запусти заново
#mysqld_safe &
Вообщем главное сделай дамп таблиц своих, заверши работу удали все что наворатил и начистую воостановись с дампа который сделал...Коряво в общем... но может на мысли наведет.
Да... скопируй на всякий пожарный и файлы регистрации(хотя наверно ты их уже скопировал)...