Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте. Проблема такая.
Делал бэкап базы простым копированием директории с файлами. Сейчас пытаюсь восстановить. Насколько я понял надо сделать нормальный текстовый дамп. Но у меня не получается.
Отредактированно Neokortex (13.04.2011 04:23:57)
Неактивен
Опишите пожалуйста ситуацию более подробно - какие файлы были сохранены, как восстановлены.
Неактивен
Для того чтобы сохранить базу fengoffice я cкопировал папку fengoffice из /var/lib/mysql (Fedora) себе на рабочий стол.
Папка эта выглядит следующим образом:
Отредактированно Neokortex (13.04.2011 14:02:16)
Неактивен
К сожалению в этих файлах только структура таблиц InnoDB. Данные есть только для одной MyISAM таблицы og_searchable_objects. Все остальные данные хранятся в файле /var/lib/mysql/ibdata1 на старой машине.
Неактивен
да у меня есть этот файл. что с ним можно сделать?
Неактивен
Нужно этот файл положить в /var/lib/mysql на новой машине. Также убедиться, что на новой машине совпадают настройки, касающиеся innodb в /etc/my.cnf. Удалить на новой машине /var/lib/mysql/ib_logfile* затем перезапустить mysql.
Более корректный способ сделать дамп на старой машине и овсстановить на новой.
Неактивен
старой машины уже нет
файл копировал.
файлы /var/lib/mysql/ib_logfile* удалил
перезапустил - та же ошибка
Неактивен
Во-первых, посмотрите, что у Вас написано в журнале ошибок. Скорее всего,
не поднимается InnoDB. Самые частые ошибки — нехватка прав или несоответствие
размеров файлов в журнале и в жизни.
Неактивен
110413 15:20:52 [ERROR] Cannot find or open table fengoffice/og_administration_logs from
the internal data dictionary of InnoDB though the .frm file for the
table exists. Maybe you have deleted and recreated InnoDB data
files but have forgotten to delete the corresponding .frm files
of InnoDB tables, or you have moved .frm files to another database?
or, the table contains indexes that this version of the engine
doesn't support.
See http://dev.mysql.com/doc/refman/5.1/en/ … oting.html
how you can resolve the problem.
Неактивен
У Вас точно ibdata с сервера, с которого Вы делали копию данных? Судя
по тексту ошибки, — это свежесозданный tablespace.
Неактивен
да точно.
Неактивен
Давайте проведем маленький эксперимент. Можете выполнить
strings ibdata1 | grep fengoffice? Должны быть вхождения этой
базы (она же так называлась на старом сервере?) в файл.
Неактивен
да. называлась также.
Я, извините, не знаю как выполнить команду
Неактивен
в консоли сервера
Неактивен
вот такая команда ничего не возвращает:
Неактивен
Нужно вот так:
Неактивен
mysql тут не при чем, strings — это команда, которая позволяет найти
последовательности, напоминающие строки, в двоичном файле. Если
этот файл был привязан к базе данных fengoffice, в нём должно это
слово упоминаться.
Неактивен
спасибо, понял.
вот результат: http://paste.org.ru/?ip3ldm
странный какой-то
Отредактированно Neokortex (13.04.2011 17:35:20)
Неактивен
Хм. Файл и правда правильный. Тогда такое предположение — точно
ли MySQL читает этот файл? Может, у него path прописан не тот?
Неактивен
а как это можно проверить?
например команда use показывает таблицы базы.
Неактивен
Показывает не USE, а SHOW TABLES, но оно показывает на наличие файликов
.frm, а не на объективное наличие данных в таблице.
Можно, например, посмотреть
lsof -p `cat /var/run/mysqld/mysqld.pid` | grep ibdata
Неактивен
Неактивен
/usr/sbin/mysqld ≠ /var/run/mysqld/mysqld.pid
cat pid-файла вернет одно число — pid процесса mysqld. lsof -p <pid> покажет
список открытых этим процессом файлов, среди них надо найти ibdata и сравнить
каталоги.
Неактивен
вопрос решился. не знаю правда каким образом, но решился
phpmyadmin стал нормально показывать базу. возмолжно это произошло из-за того что, я прописал в my.cnf "pid-file=/var/run/mysqld/mysqld.pid" в разделе [mysqld_safe]
вывод: надо детально изучить настройку MySQL
спасибо вам.
Неактивен