Стол с винтом в Mysql db
Мне удалось испортить (или что-то) таблицу "сессий" в моей базе данных mysql (которая называется "e_learning_resource_prelive"). Обычно это не было бы проблемой, так как я мог просто вернуться к резервной копии базы данных. Однако поврежденная таблица, кажется, мешает мне удалить базу данных:
> mysqladmin -u root drop e_learning_resource_prelive
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'e_learning_resource_prelive' database [y/N] y
mysqladmin: DROP DATABASE e_learning_resource_prelive failed;
error: 'Unknown table 'sessions''
Когда я захожу в БД, таблица сессий отображается в show_tables (она единственная, mysqladmin drop удалил остальные), но я не могу ее удалить:
mysql> show tables;
+---------------------------------------+
| Tables_in_e_learning_resource_prelive |
+---------------------------------------+
| sessions |
+---------------------------------------+
1 row in set (0.00 sec)
mysql> drop table sessions;
ERROR 1051 (42S02): Unknown table 'sessions'
Может кто-нибудь сказать мне, как я могу удалить эту таблицу, или весь БД? Мне нужно удалить базу данных, а затем перестроить ее из резервной копии.
3 ответа
Разобрался, кажется вроде сейчас очевидным. У всех dbs просто есть папка, которую можно удалить, как и все остальное.
sudo rm -r / var / lib / mysql / e_learning_resource_prelive
Спасибо всем, кто смотрел, в любом случае:) Макс
session
является зарезервированным ключевым словом ( http://developer.mimer.com/validator/sql-reserved-words.tml), поэтому я считаю, что ваша база данных повреждена.
У меня была та же проблема с использованием зарезервированного ключевого слова (references
в моем случае), и у меня также была проблема, что переименование, удаление или усечение таблицы приводили к ошибке sql.
Чтобы решить эту проблему, используйте символы обратной галочки в запросе alter table.
ALTER TABLE `session` RENAME TO newname
Таким образом, запрос не потерпит неудачу, и ваши данные все еще там (слава богу!). Я надеюсь, что кто-то найдет это полезным!
Используйте графический интерфейс. Вероятно, есть какой-то не очень печатный символ в sessions
название.
Или, может быть, основной файл в файловой системе был удален? Если это так, попробуйте создать пустой файл с именем sessions
там.