MySQL фантомные таблицы - PullRequest
       2

MySQL фантомные таблицы

1 голос
/ 04 октября 2011

Я выполнил запрос отбрасывания для таблицы MySQL ... мой графический интерфейс потерпел крах прямо в середине процесса. Таблица не существует в списке; однако, когда я иду, чтобы сделать новый, он говорит, что уже есть таблица с таким именем. Я попытался сделать DROP TABLE и RENAME для этой фантомной таблицы, но оба запроса выполнялись бесконечно.

К вашему сведению, я не могу перезапустить MySQL, потому что на наших сайтах может появиться дерьмо.

Любая помощь очень ценится.

Ответы [ 5 ]

0 голосов
/ 06 октября 2011

Закончилось восстановление из резервной копии ... редактирование файлов в файловой системе является пугающим и, возможно, потребовал перезагрузки.

0 голосов
/ 04 октября 2011

Звучит так, будто у вас нет связи между тем, что у вас есть, и тем, что ваш сервер думает, что у вас есть .

Вам понадобится доступ по SSH и вам придется восстанавливать таблицу вручную.

Войдите в систему SSH и введите:

mysql -u root -p

и введите свой пароль root mysql.

Затем

show databases

И он выведет список всех баз данных наваш сервер.

Выберите нужную базу данных с помощью

use databasename;

Затем

show tables;

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

drop tablename;

Надеюсь, это исправит вашу проблему.

0 голосов
/ 04 октября 2011

Имя таблицы соответствует трем файлам в файловой системе с .frm, .myd и .myi расширением (для файлов определения таблицы, данных и индекса соответственно) Один из этих файлов поврежден, что мешает MySQL выполнить ваш заказ.

Вариант 1 удаления файлов из файловой системы
Взгляните на файловую систему, чтобы увидеть, какой файл еще существует.
Если файл .frm отсутствует, вы сможете удалить два других файла.
Если файл .frm все еще существует , не удаляйте , MySQL все еще имеет блокировку этого файла.

Вариант 2 восстановления базы данных
Используйте myisamchk для диагностики и восстановления вашей базы данных.

См .: http://forge.mysql.com/wiki/MySQL_Internals_File_Formats
А: http://dev.mysql.com/doc/refman/5.0/en/myisam-repair.html

0 голосов
/ 04 октября 2011

Проверьте каталог, в котором mysql хранит базы данных. В Ubuntu он находится в / var / lib / mysql, но может отличаться в зависимости от вашей ОС и конфигурации. Внутри этого каталога есть каталог для каждой базы данных, перейдите в каталог для проблемной базы данных и удалите любой файл с именем таблицы с расширениями .frm, .myd и .myi.

0 голосов
/ 04 октября 2011

Попробуйте починить стол: http://dev.mysql.com/doc/refman/5.1/en/repair-table.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...