8

私が持っている mysql データベースの「セッション」テーブル (「e_learning_resource_prelive」と呼ばれます) を破損 (または何か) することができました。これは通常、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''

私がデータベースに入ると、セッションテーブルがshow_tablesに表示されます(そこにあるのはこれだけで、mysqladminドロップは残りを削除しました)が、ドロップできません:

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'

このテーブルまたはデータベース全体を削除する方法を誰か教えてもらえますか? データベースを削除してから、バックアップ ダンプから再構築する必要があります。

4

3 に答える 3

7

それを理解すると、今では明らかなようです。データベースにはすべて、他のように削除できるフォルダーがあります。

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

とにかく、見てくれた人に感謝します:) max

于 2010-01-07T16:24:24.080 に答える
1

sessionは予約済みキーワード ( http://developer.mimer.com/validator/sql-reserved-words.tml ) です。それが原因でデータベースが破損していると思います。

私は予約済みのキーワードを使用して同じ問題を抱えていました(references私の場合)。また、テーブルの名前を変更、削除、または切り捨てるとSQLエラーが発生するという問題もありました。

この問題を解決するには、alter table クエリでバッククォート文字を使用します。

ALTER TABLE `session` RENAME TO newname

こうすれば、クエリは失敗せず、データはまだそこにあります (神に感謝します!)。誰かがこれが役立つことを願っています!

于 2011-06-06T13:50:24.797 に答える
-1

GUI インターフェイスを使用します。名前には、あまり印刷できない文字が含まれている可能性がありsessionsます。

それとも、ファイルシステムの基になるファイルが削除されたのでしょうか? その場合は、そこに名前を付けた空のファイルを作成してみてくださいsessions

于 2010-01-05T19:54:10.947 に答える