2013-09-02 9 views
16

के पुनरारंभ के बाद \ mysql \ innodb_index_stats.ibd मैंने अपने स्थानीय XAMPP सर्वर पर ड्रूपल स्थापित किया है। यह ठीक है, जब तक मैं XAMPP को पुनरारंभ नहीं करता तब तक डेटाबेस/साइट के साथ काम करने और काम करने में कोई समस्या नहीं है। तब से मैं अपने लॉगफ़ाइल पर निम्न हो:XAMPP/MySQL: एकल-टेबल टेबलस्पेस फ़ाइल नहीं खोल सका। MySQL

2013-09-02 16:18:46 2544 [Note] Plugin 'FEDERATED' is disabled.

2013-09-02 16:18:46 3e8 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.

2013-09-02 16:18:46 2544 [Note] InnoDB: The InnoDB memory heap is disabled

2013-09-02 16:18:46 2544 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions

2013-09-02 16:18:46 2544 [Note] InnoDB: Compressed tables use zlib 1.2.3

2013-09-02 16:18:46 2544 [Note] InnoDB: Not using CPU crc32 instructions

2013-09-02 16:18:46 2544 [Note] InnoDB: Initializing buffer pool, size = 16.0M

2013-09-02 16:18:46 2544 [Note] InnoDB: Completed initialization of buffer pool

2013-09-02 16:18:46 2544 [Note] InnoDB: Highest supported file format is Barracuda.

2013-09-02 16:18:47 2544 [Note] InnoDB: The log sequence numbers 1600614 and 1600614 in ibdata files do not match the log sequence number 1600644 in the ib_logfiles!

2013-09-02 16:18:47 2544 [Note] InnoDB: Database was not shutdown normally!

2013-09-02 16:18:47 2544 [Note] InnoDB: Starting crash recovery.

2013-09-02 16:18:47 2544 [Note] InnoDB: Reading tablespace information from the .ibd files...

2013-09-02 16:18:47 2544 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace drupal/variable uses space ID: 2 at filepath: .\drupal\variable.ibd. Cannot open tablespace mysql/innodb_index_stats which uses space ID: 2 at filepath: .\mysql\innodb_index_stats.ibd

InnoDB: Error: could not open single-table tablespace file .\mysql\innodb_index_stats.ibd

InnoDB: We do not continue the crash recovery, because the table may become

InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.

InnoDB: To fix the problem and start mysqld:

InnoDB: 1) If there is a permission problem in the file and mysqld cannot

InnoDB: open the file, you should modify the permissions.

InnoDB: 2) If the table is not needed, or you can restore it from a backup,

InnoDB: then you can remove the .ibd file, and InnoDB will do a normal

InnoDB: crash recovery and ignore that table.

InnoDB: 3) If the file system or the disk is broken, and you cannot remove

InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf

InnoDB: and force InnoDB to continue crash recovery here.

मैं गूगल के माध्यम से एक समाधान के लिए देखा है, लेकिन यह क्योंकि यह MySQL के साथ कनेक्ट करने में सक्षम है अगर मैं डेटाबेस को निकालना बस Drupal डेटाबेस में कोई समस्या हो रहा है।

मुझे आशा है कि कोई मुझे मदद कर सकता है :(

+0

ठीक है, मुझे लगता है कि मुझे यह मिला। डेटाबेस के लिए उपयोगकर्ता विशेषाधिकारों में यह एक समस्या थी। उपयोगकर्ता के पास अधिकार थे लेकिन MySQL को बंद करने के बाद, मेरे उपयोगकर्ता ने किए गए परिवर्तनों को रद्द कर दिया था। अब मेरे उपयोगकर्ता के पास केवल इस डेटाबेस पर सीमित विशेषाधिकार हैं और - देखें - यह काम करता है :)। – leiseliesel

उत्तर

7

dev_khan, innodb_force_recovery विकल्प के साथ केवल पढ़ने के लिए मोड में MySQL पुन: प्रारंभ कर सक्षम:

  1. my.cnf संपादित करें - लाइन पाते हैं: # innodb_force_recovery = 2
  2. टिप्पणी में लाइन (# हटाएं)
  3. MySQL इंजन को स्वयं मरम्मत करने के लिए MySQL को पुनरारंभ करें।
  4. टिप्पणी में innodb_force_recovery लाइन फिर से फिर से
  5. पुनः प्रारंभ MySQL (# जोड़ें) और आप एक रीड-ओनली-प्रतिबंध के बिना फिर से पहुंच सकते हैं।

अभिवादन जर्मनी

33

Move (नष्ट कर सकता हूं नहीं) उन फ़ाइलों को, किसी अन्य फ़ोल्डर में:। एक ही फ़ाइल नाम के साथ

innodb_index_stats.frm 
innodb_table_stats.frm 
slave_master_info.frm 
slave_relay_log_info.frm 
slave_worker_info.frm 

और .ibd फ़ाइलें:

innodb_index_stats.ibd 
innodb_table_stats.ibd 
slave_master_info.ibd 
slave_relay_log_info.ibd 
slave_worker_info.ibd 

MySQL शुरू की कोशिश करो।

+0

मैंने पहले यह कोशिश की लेकिन मुझे बार-बार एक ही समस्या मिली। बस मेरे डेटाबेस उपयोगकर्ता के विशेषाधिकारों को बदलकर ठीक काम किया :) किसी कारण से मेरे उपयोगकर्ता द्वारा किए गए सभी परिवर्तन सिस्टम को बंद करने के बाद 0 से ओवरराइट किए गए थे, लेकिन आपके उत्तर के लिए धन्यवाद! – leiseliesel

+0

हाय, मुझे एक ही समस्या है .. मैं अपने डेटाबेस के विशेषाधिकार कैसे बदल सकता हूं? –

+0

यहां एक नज़र डालें (http: // serverfault।कॉम/प्रश्न/115950/कैसे-करें-i-change-the-guarant-for-mysql-user-that-is-is-created बनाया गया है) और यहां (http://stackoverflow.com/questions/5016505/mysql-grant -सभी-विशेषाधिकार-ऑन-डेटाबेस)। –

19

आप इस समस्या को हल कर सकते हैं में अपने mysql config च एक पंक्ति जोड़कर इले: innodb_force_recovery = 1

.. 
[mysqld] 
innodb_force_recovery = 1 
.. 

तो अपने सर्वर को पुनः आरंभ: my.cnf या my.ini बस के नीचे [mysqld] इस लाइन को जोड़ने (अपने distro पर निर्भर करता है)

। आप कुछ डेटा खो सकते थे लेकिन आप अपने डेटा के साथ सर्वर फिर से काम करेंगे।

सादर,

+0

यह मेरे लिए यह तय करता है हालांकि यह मुझे चेतावनी देता है कि इससे समस्याएं पैदा हो सकती हैं। तो सुनिश्चित करें कि आप ऐसा करने से पहले बैकअप बनाएं। मुझे लगता है कि यह प्रक्रिया में डीबी को तोड़ने के लिए खुद को मजबूर कर सकता है – Crecket

+0

चार्ल्स पी। ऐसा करने के बाद मेरी टेबल में केवल पढ़ने की अनुमति है। किसी भी विचार को सम्मिलित/अद्यतन करने में असमर्थ? –

+0

हाय, dev_khan। यह मेरे साथ नहीं हुआ, लेकिन इस लाइन को कॉन्फ़िगरेशन फ़ाइल में जोड़ने का प्रयास करें: स्किप-अनुदान-टेबल फिर mysql को पुनरारंभ करें और पुनः प्रयास करें। –

0

से यह भी Wordpress के साथ होता है। यह केवल नवीनतम संस्करण के साथ होता है क्योंकि मैंने एएमपीपीएस के पिछले संस्करणों में वापस रोल किया है और यह इस असंगत मुद्दे को फेंकने के बिना ठीक काम करता है।

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