2011-10-16 22 views
9

को पुनरारंभ करने के बाद मेरे पास सर्वर एस 1 (mysql संस्करण 5.1.41-3ubuntu12.7-log) पर MySQL डीबी है, मैंने सर्वर एस 2 (mysql संस्करण 5.1.54-1ubuntu4-log) पर इस डीबी के लिए मास्टर-गुलाम बनाया है।
एस 1 पर डीबी एक डेटा फ़ाइल (ibdata) का उपयोग कर रहा था। डीबी को एस 2 पर डंप करने के बाद मैं innodb_file_per_table = 1 सेट करता हूं। इसने प्रत्येक टेबल को अपनी आईबीडी फाइल बनाने के लिए बनाया है। अब सब कुछ ठीक और सुचारू रूप से चला गया।
लेकिन एस 2 पर mysql पुनरारंभ करने के बाद, मैं एक समस्या यह त्रुटि मिल रही के साथ सामना:
Error 'Unknown table engine 'InnoDB'' on query. Default database: MyDB और सूचीबद्ध नहीं है, जब मैं इंजनक्वेरी पर अज्ञात तालिका इंजन 'InnoDB' त्रुटि। mysql

 
show engines; 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
| Engine  | Support | Comment              | Transactions | XA | Savepoints | 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 
| MyISAM  | DEFAULT | Default engine as of MySQL 3.23 with great performance   | NO   | NO | NO   | 
| MRG_MYISAM | YES  | Collection of identical MyISAM tables       | NO   | NO | NO   | 
| BLACKHOLE | YES  | /dev/null storage engine (anything you write to it disappears) | NO   | NO | NO   | 
| CSV  | YES  | CSV storage engine            | NO   | NO | NO   | 
| MEMORY  | YES  | Hash based, stored in memory, useful for temporary tables  | NO   | NO | NO   | 
| FEDERATED | NO  | Federated MySQL storage engine         | NULL   | NULL | NULL  | 
| ARCHIVE | YES  | Archive storage engine           | NO   | NO | NO   | 
+------------+---------+----------------------------------------------------------------+--------------+------+------------+ 

InnoDB दिखाने के लिए प्रयास करें।
त्रुटि के लिए लॉग इन मैं इस देख सकते हैं:

 
InnoDB: Database physically writes the file full: wait... 
InnoDB: Cannot initialize created log files because 
InnoDB: data files are corrupt, or new data files were 
InnoDB: created when the database was started previous 
InnoDB: time but the database was not shut down 
InnoDB: normally after that. 
111016 8:24:11 [ERROR] Plugin 'InnoDB' init function returned error. 
111016 8:24:11 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
111016 8:24:11 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=S2-relay-bin' to avoid this problem. 

मैं ib_logfiles नष्ट करने के लिए कोशिश की है, लेकिन इस रूप में अच्छी तरह से काम नहीं किया।
किसी को भी इस तरह का मुद्दा सामना करना पड़ा ?? किसी भी विचार की अत्यधिक सराहना की जाती है
धन्यवाद

+0

कोशिश http://www.youdidwhatwithtsql.com/unknown-table-engine-innodb/760 – Bala

उत्तर

17

आप हटा सकते हैं: तुमने किया था, तो आप इसे की चर्चा करते हुए लाइनों के gobs जब आप इस चलाने होना चाहिए। हालांकि InnoDB डेटा फ़ाइल (ibdata1) को हटाएं नहीं।

उसके बाद, InnoDB आपके mysqld को पुनरारंभ करने के बाद पुनर्प्राप्त करने का प्रयास करेगा। मुख्य लॉग फ़ाइल में

देखो:

120413 17:34:47 InnoDB: Initializing buffer pool, size = 64.0M 
120413 17:34:47 InnoDB: Completed initialization of buffer pool 
120413 17:34:47 InnoDB: Log file .\ib_logfile0 did not exist: new to be created 
InnoDB: Setting log file .\ib_logfile0 size to 32 MB 
InnoDB: Database physically writes the file full: wait... 
120413 17:34:48 InnoDB: Log file .\ib_logfile1 did not exist: new to be created 
InnoDB: Setting log file .\ib_logfile1 size to 32 MB 
InnoDB: Database physically writes the file full: wait... 
InnoDB: The log sequence number in ibdata files does not match 
InnoDB: the log sequence number in the ib_logfiles! 
120413 17:34:49 InnoDB: Database was not shut down normally! 
InnoDB: Starting crash recovery. 
+1

आपने अभी अपना जीवन बचा लिया है। +1 – Clayton

+0

हाँ, मेरे मामले में बस mysqld मदद की पुनरारंभ करें, धन्यवाद – Nedudi

1

क्या आपने mysql को innodb के साथ संकलित किया था? अपने mysql डेटा निर्देशिका कहा जाता ib_logfile0 और ib_logfile1 में InnoDB लॉग फाइल

strings `which mysqld` | grep innodb 
+0

हाँ मैं किया था, और मैं लाइन का एक बहुत मिल गया है:

लॉग्स निम्नलिखित से पता चला ऊपर अपना आदेश चलाने पर ...भी innodb इंजन वहाँ था और ठीक काम कर रहा है जब तक मैं mysql पुनरारंभ नहीं !! – Alaa

2

मैं InnoDB के लिए mysql के विन्यास लगता है कि अगर आप सेट innodb_buffer_pool_size = 2G, InnoDB काम नहीं करेगा।

आमतौर पर अगर आप InnoDB प्रणाली के साथ तालिका का चयन innodb_buffer_pool_size कोशिश = 1G यह एक त्रुटि

"Unknown table engine 'InnoDB". 

देता है।

4

सर्वर लटकने और पुनरारंभ करने के बाद समान समस्या थी।

डेटा ठीक है - त्रुटि संदेश बहुत भ्रामक है।

MySQL सेवा रोकें, /var/lib/mysql से लॉग फ़ाइलें (ib_logfile*) हटाएं, और MySQL सेवा को वापस शुरू करें। बस 100% सुनिश्चित करें कि लॉग फ़ाइलों को हटाते समय MySQL वास्तव में नीचे है।

0

मुझे एक ही समस्या का सामना करना पड़ा। निकल के जवाब ने मुझे मुख्य लॉग फ़ाइल में समस्या को खोजने में मदद की। InnoDB स्टार्टअप पर आवश्यक स्मृति आवंटित करने में असमर्थ था। कुछ अन्य प्रक्रियाओं की सफाई के बाद सब कुछ ठीक से शुरू हुआ।

160219 9:20:23 InnoDB: Error: cannot allocate 12884918272 bytes of InnoDB: memory with malloc! Total allocated memory InnoDB: by InnoDB 49601872 bytes. Operating system errno: 12 InnoDB: Check if you should increase the swap file or InnoDB: ulimits of your operating system. InnoDB: On FreeBSD check you have compiled the OS with InnoDB: a big enough maximum process size. InnoDB: Note that in most 32-bit computers the process InnoDB: memory space is limited to 2 GB or 4 GB. InnoDB: We keep retrying the allocation for 60 seconds...