phpMyAdmin не видит таблиц в базе

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
dizazter
проходил мимо
Сообщения: 4
Зарегистрирован: 2012-11-20 0:13:49

phpMyAdmin не видит таблиц в базе

Непрочитанное сообщение dizazter » 2013-01-11 12:53:24

Добрый день!
Переустанавливал я давеча FreeBSD на одном из тестовых серверов и "забекапил" директорию со всеми базами MySQL (/var/db/mysql) путем простого копирования содержимого.
Установил с нуля FreeBSD(9.0), поставил MySQL(5.5.29), Apache(2.2.23), PHP(5.4.10), phpMyAdmin(3.5.5).
Ну и соответственно вернул "забекапленные" базы на их прежнее место в /var/db/mysql
Захожу в MySQL, выбираю любую из баз, по команде SHOW TABLES получаю весь список таблиц в базе.
Захожу в phpMyAdmin, вижу список баз, возле каждой в скобках написано количество таблиц в базе.
Но, когда открываю любую из этих баз, то phpMyAdmin говорит, что в базе нет таблиц.
В логах MySQL наблюдаю вот такую картину:

Код: Выделить всё

130110 15:30:39 [ERROR] Cannot find or open table redmine/boards 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.5/en/innodb-troubleshooting.html
how you can resolve the problem.
И так ругается на каждую таблицу в базе redmine и прочих.

Прочитав множество интернетов, как полезных, так и не очень, вывел общее для этой ситуации заключение:
"Нельзя вот так втупую копировать папки с базами, так как работать в этом случае ничерта не будет"
Хорошо. Уяснил.
Почитал инструкции о том, как вручную восстанавливать InnoDB базу, если есть только .frm файлы.
Например наткнулся на вот такой мануал:
http://yapatha.livejournal.com/255447.html
Геморно, долго, нудно. Но, это вроде как единственный способ восстановления базы.
Дескать, такова расплата за отсутствие правильных бекапов.
Хорошо.

Рядом у меня болтается другой тестовый сервер, который я поднимал еще в 2009 году.
Там установлено:
FreeBSD 7.1
MySQL 5.1.36
Apache 2.2.17
PHP 5.2.10
Так вот, когда я на нем провожу подобные манипуляции с базами MySQL: копирую их, дублирую и всячески перемещаю путем операций с директориями в /var/db/mysql, то картина совсем иная.
Достаточно скопировать базу redmine в new_redmine и phpMyAdmin показывает всю структуру новой базы, видит таблицы и т.п.
Соответственно с базой new_redmine можно работать безо всяких плясок с бубном.
И такие архипреступные и неправильные операции можно проделывать с абсолютно любой базой, без потери функциональности.
Из-за этого я свято верил в работоспособность подобных "бекапов".

В связи с этим у меня возникает резонный вопрос - если простое копирование директории с базой, в которой находятся файлы .frm по всем православным канонам является преступным и такая база не должна функционировать, то почему во втором случае этот варварский метод работает?
И главное - как добиться такого же эффекта в первом случае?
Последний раз редактировалось f_andrey 2013-01-11 12:55:16, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: phpMyAdmin не видит таблиц в базе

Непрочитанное сообщение Bayerische » 2013-01-11 13:08:11

Да что ж так всё туго-то? Восстановите сервер нужной версии в исходной конфигурации. Запустите с имеющимися файлами. Сделайте дамп.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: phpMyAdmin не видит таблиц в базе

Непрочитанное сообщение Gamerman » 2013-01-11 13:09:53

Если посмотреть файл /var/db/mysql/*.err, то скорее всего там будет ругань на файлы для InnoDB. Вот если эту ругань почитать, то может что-то и прояснится. Возможно, достаточно будет грохнуть файлы-логи InnoDB.

Для myIsam-таблиц можно просто копировать каталоги, для InnoDB - нет.
Глюк глюком вышибают!

dizazter
проходил мимо
Сообщения: 4
Зарегистрирован: 2012-11-20 0:13:49

Re: phpMyAdmin не видит таблиц в базе

Непрочитанное сообщение dizazter » 2013-01-11 13:35:14

Gamerman писал(а):Если посмотреть файл /var/db/mysql/*.err, то скорее всего там будет ругань на файлы для InnoDB. Вот если эту ругань почитать, то может что-то и прояснится. Возможно, достаточно будет грохнуть файлы-логи InnoDB.
В первом сообщении я и написал кусок лога из этого файла.
Все сводится к тому, что:
Gamerman писал(а): Для myIsam-таблиц можно просто копировать каталоги, для InnoDB - нет.
Я видел это утверждение.
И у меня не возникало бы вопросов, если бы во второй конфигурации простое копирование каталогов не имело положительного эффекта.
В этом-то и заключается основной вопрос: почему, если этого делать нельзя, оно тем не менее работает в старой конфигурации?
Может в какой-то ранней версии было можно, а теперь стало нельзя?

Bayerische
капитан
Сообщения: 1820
Зарегистрирован: 2010-12-25 20:41:50
Откуда: Хлебная столица

Re: phpMyAdmin не видит таблиц в базе

Непрочитанное сообщение Bayerische » 2013-01-11 14:23:34

innodb file_per_table

dizazter
проходил мимо
Сообщения: 4
Зарегистрирован: 2012-11-20 0:13:49

Re: phpMyAdmin не видит таблиц в базе

Непрочитанное сообщение dizazter » 2013-01-11 15:13:25

Разобрался.
Проблема была в моей невнимательности.
На "древнем" сервере базы были в MyISAM, потому там манипуляции с каталогами имели соответствующий эффект.
В то время как на свежеподнятом сервере - InnoDB, потому финт с копированием каталогов не прошел.