2010-01-05 21 views
8

में ड्रॉप स्क्रू अप टेबल मैंने एक 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'' 

जब मैं db में जाने सत्र तालिका 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

जीयूआई इंटरफ़ेस का उपयोग करें। शायद sessions नाम में कुछ बहुत ही प्रिंट करने योग्य चरित्र नहीं हैं।

या शायद फाइल सिस्टम पर अंतर्निहित फ़ाइल हटा दी गई थी? यदि ऐसा है, तो sessions नाम की एक खाली फ़ाइल बनाने का प्रयास करें।

+0

धन्यवाद wally लेकिन डीबी एक लिनक्स सर्वर पर है, इसलिए मैं इसे देखने के लिए कोई भी गुई टूल्स चलाने में सक्षम नहीं हूं, मुझे लगता है। –

7

यह पता लगाया गया है, अब स्पष्ट है। डीबीएस में बस एक फ़ोल्डर है जिसे किसी और चीज की तरह हटाया जा सकता है।

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

धन्यवाद जो कोई देखा, वैसे भी :) अधिकतम

+0

ने मेरी ड्रोपल साइट के लिए यह किया ... मैंने अन्य सभी तरीकों की कोशिश की और यह काम नहीं किया। बस फाइल को हटाना सरल था। काश मैं जल्द ही जानता था ... –

1

session एक आरक्षित कीवर्ड (http://developer.mimer.com/validator/sql-reserved-words.tml) है, मुझे लगता है कि यही वजह है कि अपने डेटाबेस भ्रष्ट है।

मेरे पास एक आरक्षित कीवर्ड (references मेरे मामले में) का उपयोग कर एक ही समस्या थी, और मुझे यह भी समस्या थी कि तालिका का नाम बदलने, छोड़ने या छंटनी एक एसक्यूएल त्रुटि दे रही थी।

इस समस्या को हल करने के लिए, तालिका तालिका क्वेरी में बैकटिक-वर्णों का उपयोग करें।

ALTER TABLE `session` RENAME TO newname 

इस तरह क्वेरी विफल नहीं होगी, और आपका डेटा अभी भी है (भगवान का शुक्र है!)। मुझे आशा है कि किसी को यह उपयोगी लगेगा!

संबंधित मुद्दे