2010-02-22 54 views
6

एक बहुत ही महत्वपूर्ण डेटाबेस भ्रष्ट हो गया है जो साझा वेब होस्ट पर सर्वर पर बैठा था, और मैंने बैक अप नहीं लिया। तालिका में बहुत महत्वपूर्ण ईमेल पते की एक बड़ी सूची है। मैं एक मेज सूची प्राप्त कर सकते हैं, लेकिन अगर मैं Navicat या phpMyAdmin साथ टेबल के किसी भी खोलने के लिए, मैं निम्नलिखित त्रुटि मिलती है:MySQL डेटाबेस को कैसे पुनर्प्राप्त करें: फ़ाइल में गलत जानकारी: './xxx.frm'

फ़ाइल में गलत जानकारी: './the-table-name.frm'

मैं वेब होस्ट से डेटाबेस से जुड़े .frm फ़ाइलों को पकड़ने में सक्षम था।

वहां अन्य डेटा भी है, लेकिन अगर मुझे कम से कम ईमेल पते मिल सकते हैं, तो मैं ठीक रहूंगा।

मैं इस डेटाबेस को कैसे पुनर्प्राप्त करूं? मैं इसे ठीक करने के लिए किसी को भुगतान करने को तैयार हूं।

उत्तर

14

यह सर्वरफॉल्ट पर संबंधित है।

सबसे पहले, एफआरएम फाइलों में आपके "डेटा" के शामिल नहीं हैं। वे बस टेबल की परिभाषा हैं। सभी निम्न में से सत्य हैं

हैं:

  • तालिका MyISAM भंडारण इंजन
  • उपयोग कर रहा है आप CREATE TABLE बयान तालिका पुन: बनाने के लिए आवश्यक

तब पता , निम्न कार्य करें:

  1. बंद करो MySQL
  2. बैकअप अपने table_name.frm, table_name.MYI, table_name.MYD फ़ाइलों
  3. अपने mysql डेटा निर्देशिका से उन्हें हटाना (/ var/lib/mysql आमतौर पर)
  4. प्रारंभ MySQL
  5. बनाएं तालिका फिर से
  6. बंद करो MySQL
  7. कॉपी .MYD और .MYI DATADIR में वापस फ़ाइलें, वहाँ लोगों की जगह।
  8. MySQL
  9. ???
  10. लाभ
+0

धन्यवाद ... लेकिन क्या इसका मतलब यह है कि अगर मैं इनो डीबी पर हूं, तो मैं खराब हूं? – Wolverine

+0

खैर, इनो डीबी "क्रैश सुरक्षित" है और माईसाम से कहीं अधिक लचीला है। सामान्य mysql उपयोग के माध्यम से एक .frm फ़ाइल दूषित नहीं हो सकती है। यह जानने के बिना कि आपने क्या किया है, मैं आपकी मदद नहीं कर सकता। भले ही, यह एसओ के दायरे से बाहर है, क्योंकि यह प्रोग्रामिंग से संबंधित नहीं है। – hobodave

+0

यह मेरे लिए काम नहीं करता है, अभी भी दूषित तालिका – nick

0

मैं ने वही समस्या थी, यह पता चला है MySQL InnoDB इंजन (मैं phpMyAdmin के माध्यम से जांच करने के लिए सक्षम था, एक पार्टी समर्थक आपको बता कैसे यह अन्य तरीकों से ऐसा करने के लिए कर सकता है) बंद कर दिया गया था। मेरे मामले में, यह MySQL को पुनरारंभ करने जैसा आसान था, लेकिन अगर आप वहां कुछ बदल गए तो आप अपनी कॉन्फ़िगरेशन जांचना चाहेंगे।

0

आप निम्न कमांड कोशिश कर सकते हैं: जांच TABLE TableName

इस देता है "भ्रष्ट" संदेश कोशिश:

मरम्मत TABLE TableName

असल में ये मेरे समान समस्या का समाधान नहीं कर रहे हैं, लेकिन वे किसी के लिए उपयोगी हो सकते हैं।

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

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