InnoDB: त्रुटि: लॉग फ़ाइल ./__logfile0 विभिन्न आकार की है


106

मैं बस InoDB इंजन का उपयोग करने के लिए एक डेटाबेस में परिवर्तित करने के बाद /etc/mysql/my.cnf में निम्न पंक्तियाँ जोड़ता हूँ।

innodb_buffer_pool_size = 2560M
innodb_log_file_size    = 256M
innodb_log_buffer_size  = 8M
innodb_flush_log_at_trx_commit  = 2
innodb_thread_concurrency   = 16
innodb_flush_method = O_DIRECT

लेकिन यह पंक्ति 2 में "ERROR 2013 (HY000) को बढ़ाता है: क्वेरी के दौरान MySQL सर्वर से कनेक्शन खो दिया" mysqld को पुनरारंभ करने में त्रुटि। और mysql त्रुटि लॉग निम्न दिखाता है

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
100118 20:52:52 [ERROR] Plugin 'InnoDB' init function returned error.
100118 20:52:52 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
100118 20:52:52 [ERROR] Unknown/unsupported table type: InnoDB
100118 20:52:52 [ERROR] Aborting

इसलिए मैंने इस लाइन पर टिप्पणी की

# innodb_log_file_size  = 256M

और इसने mysql को सफलतापूर्वक पुनः आरंभ किया।

मुझे आश्चर्य है कि mysql त्रुटि में "लॉग फ़ाइल का 5242880 बाइट्स" क्या है? यह इस सर्वर पर InnoDB इंजन का पहला डेटाबेस है, इसलिए उस लॉग फ़ाइल को कब और कहाँ बनाया गया है? इस स्थिति में, मैं my.cnf में innodb_log_file_size निर्देश कैसे सक्षम कर सकता हूं?

संपादित करें

मैंने / var / lib / mysql / ib_logfile0 को हटाने और mysqld को पुनरारंभ करने का प्रयास किया लेकिन यह अभी भी विफल रहा। अब यह एरर लॉग में निम्नलिखित दिखाता है।

100118 21:27:11  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 256 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200
InnoDB: Error: log file ./ib_logfile1 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!

संकल्प

यह ib_logfile0 और ib_logfile1 को / var / lib / mysql में डिलीट करने के बाद अब काम करता है

जवाबों:


121

InnoDB के बारे में पागलपन भरी बात है कि यह विन्यास है; अगर कुछ सही नहीं है, तो यह बस छोड़ देना और घर जाना होगा। डेटा हानि के बिना लॉग फ़ाइल के आकार में परिवर्तन करने के लिए:

  1. लॉग फ़ाइल आकार में किए गए किसी भी परिवर्तन को वापस करें और MySQL को फिर से शुरू करें।
  2. आपके रनिंग MySQL में: GLOBAL innodb_fast_shutdown = 0 सेट करें ;
  3. MySQL बंद करो
  4. लॉग फ़ाइल आकार में कॉन्फ़िगरेशन परिवर्तन करें।
  5. दोनों लॉग फ़ाइलों को हटाएँ।
  6. MySQL शुरू करें। यह लॉग फ़ाइलों की कमी के बारे में शिकायत करेगा, लेकिन यह उन्हें पैदा करेगा और सब ठीक हो जाएगा।

1
नमस्ते, आपके उत्तर के लिए धन्यवाद, मैंने आपकी विधि की कोशिश की लेकिन फिर भी असफल रहा।
जैक

44
Ib_logfile0 और ib_logfile1 दोनों को हटाने से मेरे लिए समस्या हल हो गई।
तमनोवित

1
और मेरे लिए। बहुत बहुत धन्यवाद, हमारे पास हमारी विकी है!
स्टीफन कैनेडी

1
जब से मैं एक नव स्थापित db स्थानांतरित कर रहा हूं, मैं 1-4 कदम छोड़ता हूं और 5 से शुरू करता हूं - और यह काम करता है :)
लिम्बो पेंग

धन्यवाद @Temnovit इन 2 फ़ाइलों को हटाने से मेरे लिए भी चाल चली गई।
बेसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.