2010-01-05 45 views
8

我已經設法損壞(或者某個)我有的mysql數據庫中的'sessions'表(它被稱爲「e_learning_resource_prelive」)。這通常不會成爲問題,因爲我可以回到db的備份轉儲。然而,損壞的表似乎阻止我刪除數據庫:Drop在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'' 

當我進入數據庫會話表中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' 

誰能告訴我怎麼可以刪除這張表,或整個分貝?我需要刪除數據庫,然後從我的備份轉儲重建它。

回答

-1

使用GUI界面。 sessions名稱中可能有一些不是非常可打印的字符。

或者文件系統上的底層文件被刪除了?如果是這樣,請嘗試在那裏創建一個名爲sessions的空文件。

+0

謝謝瓦利,但數據庫是在Linux服務器上,所以我不能運行任何GUI工具來看待它,我想。 – 2010-01-06 08:27:28

7

想通了,現在看起來很明顯。 dbs全部都有一個可以像其他任何東西一樣被刪除的文件夾。

須藤RM -r在/ var/lib中/ MySQL的/ e_learning_resource_prelive

感謝任何人誰看了,反正:) 最大

+0

爲我的drupal網站做了這個...我嘗試了所有其他方法,並沒有奏效。只是刪除文件很簡單。我希望我早點知道... – 2014-06-17 23:27:48

1

session是保留關鍵字(http://developer.mimer.com/validator/sql-reserved-words.tml),我想這就是爲什麼你的數據庫腐敗的。

我使用保留關鍵字(references在我的情況)有同樣的問題,我也有問題,重命名,刪除或截斷表是給出一個SQL錯誤。

要解決此問題,請在alter table查詢中使用反引號字符。

ALTER TABLE `session` RENAME TO newname 

這樣查詢不會失敗,您的數據仍然存在(感謝上帝!)。我希望有人認爲這有用!