2010-01-05 19 views
8

Udało mi się uszkodzić (lub coś) tabeli "sesje" w mysql db mam (co nazywa się "e_learning_resource_prelive"). Nie byłoby to normalnym problemem, ponieważ mogłem po prostu wrócić do kopii zapasowej bazy danych. Jednak uszkodzony tabeli wydaje się być zatrzymanie mnie usunięcie bazy danych:Spadek przykręcona tabela w Mysql db

> 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'' 

Kiedy idę do db tabela sesji pojawia się w show_tables (to jedyny tam, spadek mysqladmin usunięta reszta), ale nie można go upuścić:

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' 

Czy ktoś może mi powiedzieć, w jaki sposób mogę usunąć tę tabelę lub całą bazę danych? Muszę usunąć db, a następnie odbudować go z kopii zapasowej.

Odpowiedz

-1

Użyj interfejsu GUI. W nazwie sessions jest prawdopodobnie jakaś niezadrukowana postać.

A może podstawowy plik w systemie plików został usunięty? Jeśli tak, spróbuj utworzyć pusty plik o nazwie sessions.

+0

Dzięki wally, ale db jest na serwerze Linux, więc nie będę w stanie uruchomić żadnych narzędzi GUI, aby na to spojrzeć. –

7

Wyobraźmy to sobie, wydaje się teraz oczywiste. DBS wszystkie mają po prostu folder, który można usunąć jak wszystko inne.

sudo rm -r/var/lib/mysql/e_learning_resource_prelive

Dzięki kto wyglądał, w każdym razie :) max

+0

zrobiłem to samo dla mojej witryny drupal ... próbowałem wszystkich innych metod i to nie działało. po prostu usunięcie pliku było proste. chciałbym wiedzieć wcześniej ... –

1

session jest zarezerwowanym kluczowe (http://developer.mimer.com/validator/sql-reserved-words.tml), myślę, że dlatego baza danych jest skorumpowany.

Miałem ten sam problem, używając zastrzeżonego słowa kluczowego (references w moim przypadku), a także miałem problem z tym, że zmiana nazwy, upuszczenie lub obcięcie tabeli powodowało błąd sql.

Aby rozwiązać ten problem, użyj znaków backtick w zapytaniu o zmienną tabelę.

ALTER TABLE `session` RENAME TO newname 

W ten sposób zapytanie nie zawiedzie, a Twoje dane nadal tam są (dzięki Bogu!). Mam nadzieję, że ktoś uzna to za przydatne!