2011-09-05 13 views
24

हाल ही में, मुझे पता चला है कि अगर मेरे पास अच्छा हार्डवेयर है तो मैं mysql प्रदर्शन को अधिकतम कर सकता हूं। जब से मैं InnoDB का उपयोग कर रहा my.iniअज्ञात टेबल इंजन 'इनो डीबी'

में अतिरिक्त विन्यास जोड़ा यहाँ नए जोड़े गए विन्यास है:

innodb_data_file_path = ibdata1:10M:autoextend 
innodb_buffer_pool_size = 2G 
innodb_additional_mem_pool_size = 2M 
innodb_log_file_size = 256M 
innodb_log_buffer_size = 8M 
innodb_flush_log_at_trx_commit = 1 
innodb_lock_wait_timeout = 120 

तब मैं सेवाओं के सभी को पुनः आरंभ। लेकिन जब मैंने अपने कार्यक्रम का उपयोग किया, तो एक त्रुटि हुई "अज्ञात टेबल इंजन 'InnoDB'"।

क्या मैं इस समस्या को हल करने की कोशिश की:

  1. मैं लॉग फ़ाइल को पुनः आरंभ सेवा को मिटाने लेकिन मैं अभी भी त्रुटि मिली।

उत्तर

11

मैंने अभी लॉगफाइल को हटाने और सेवाओं को पुनरारंभ करने का प्रयास किया है, और यह काम करता है! लेकिन 2 जी आवंटित करने से सावधान रहें क्योंकि innodb संकलित नहीं हो सकता है, अगर 2 जी काम नहीं करता है तो कृपया 1 जी का उपयोग करें।

+1

यह/var/lib/mysql/मुझे (chroot एड) के लिए, यह भी पाया जा सकता है @/usr/स्थानीय/mysql में था/डेटा/ –

+0

एक और संभावित लॉग स्थान/mysqldb/logs/ – MarkHu

+2

बस लॉग फ़ाइल को हटा रहा है और mysql को फिर से शुरू करने के लिए मेरे लिए काम किया .. धन्यवाद – Sree

17

अन्य समाधानों ने मेरी समस्या को ठीक नहीं किया। कॉन्फ़िगरेशन समायोजित करने के बाद InnoDB इंजन अक्षम कर दिया गया था।

ib_ borked निकाल रहा * लोग इन mysql डेटा निर्देशिका में फ़ाइलों को मेरी समस्या को ठीक किया और मुझे InnoDB के लिए 2 जी बफर पूल का उपयोग करने की अनुमति दी: http://www.turnkeylinux.org/forum/support/20090111/drupal-6-problem-enable-innodb#comment-131

+0

यह मेरी समस्या थी; mysql को बंद करें, ib_logfile [01] फ़ाइलों को हटाएं, mysql को पुनरारंभ करें, सभी अच्छे। – pdwalker

8

मैं इस समस्या में भी भाग गया है। समस्या यह थी कि मैं परिवर्तनीय innodb_buffer_pool_size के साथ सर्वर की तुलना में InnoDB को और अधिक स्मृति आवंटित कर रहा था। MySQL इस बारे में शिकायत नहीं करता है कि इस बारे में इसके लॉग में स्मृति आवंटित करने में सक्षम नहीं है।

0

बैकअप से पुनर्स्थापित करते समय यह समस्या थी। समस्या यह थी कि my.ini में मेरी कुछ अलग सेटिंग्स थीं। इसलिए अगर किसी को यह समस्या मिलती है तो बस एक ही सेटिंग (my.ini कॉपी करें) सेट करना सुनिश्चित करें, MySQL सेवा को रोकें, फिर पूरे डेटा फ़ोल्डर को पुनर्स्थापित करें और फिर MySQL सेवा को फिर से शुरू करें।

12

1.Check को देखने के लिए आप InnoDB समर्थन सक्षम है या नहीं:

mysql> show variables like 'have_innodb'; 
+---------------+-------+ 
| Variable_name | Value | 
+---------------+-------+ 
| have_innodb | YES | 
+---------------+-------+ 
1 row in set (0.00 sec) 

ऊपर मूल्य 2. यदि अक्षम किया गया है, तो आप InnoDB सक्षम करने के लिए की आवश्यकता होगी।

3. MySQL की कॉन्फ़िगरेशन फ़ाइल खोलें।

  • विंडोज: विभिन्न प्लेटफार्मों पर, विन्यास फाइल फ़ाइल नाम और स्थान में अलग हो सकता है $ MYSQL_INSTALL_DIRECTORY/my.ini

  • लिनक्स/यूनिक्स:

  • /etc/mysql/my.cnf

पैरामीटर छोड़-innodbis uncommented/मौजूद 4. यदि है, तो बस इसे बाहर टिप्पणी:

# skip-innodb 

5।शटडाउन MySQL सर्वर, हटाने/नाम बदलने MySQL लॉग पूरा सर्वर की लॉगिंग ताज़ा करने के लिए, और पुनः आरंभ MySQL सर्वर:

  • लिनक्स:

    ~$: /etc/init.d/mysql stop

    ~$: rm /var/lib/mysql/ib_logfile*

    ~$: /etc/init.d/mysql start

  • विंडोज़:

    $ MYSQL_INSTALL_DIRECTORY/डेटा पर जाएं और या तो लॉग फ़ाइलों को उपसर्ग ib_logfile से हटाएं/स्थानांतरित करें।

1

एक अन्य विकल्प आपके पास यदि आप वध अपने my.cnf फ़ाइल पूरी तरह से mysql वहाँ स्थापित से एक डिफ़ॉल्ट config से बदलने के लिए है। लिनक्स के लिए:

आपके पास निम्न विकल्प,

/usr/share/mysql/my-huge.cnf 
/usr/share/mysql/my-innodb-heavy-4G.cnf 
/usr/share/mysql/my-large.cnf 
/usr/share/mysql/my-medium.cnf 
/usr/share/mysql/my-small.cnf 

यहाँ यह स्थापित करने के लिए एक उदाहरण है:

#backup original config 
mv /etc/my.cnf{,.bak} 

#copy new my.cnf from template 
cp /usr/share/mysql/my-large.cnf /etc/my.cnf 

इन विकल्पों पर अधिक जानकारी उपलब्ध है पर http://dev.mysql.com/doc/mysql/en/option-files.html

4

मैंने कोशिश की उन सभी (और कई अन्य) लेकिन मेरे लिए काम करने वाली एक विधि है:

  • बंद करो सर्वर
    /etc/init.d/mysql stop
  • लॉग फाइल
    rm ib_logfile0 ib_logfile1
  • InnoDB फ़ाइल का नाम बदलें हटाएँ (और कुछ नहीं काम करता है, क्योंकि यह बनाई जाएँगी) mv ibdata1 old_ibdata1
  • मैं इस में configs /etc/mysql/my.cnf -> भले ही आप इसे निर्दिष्ट न करें, MySQL डिफ़ॉल्ट मानों का उपयोग करेगा।

    [mysqld] 
    datadir=/data/mysql/data 
    socket=/var/run/mysqld/mysqld.sock 
    
    #Not a must to define the following 
    innodb_log_file_size=1G 
    innodb_file_per_table=1 
    innodb_flush_method=O_DIRECT 
    innodb_buffer_pool_size=1G 
    innodb_data_file_path=ibdata1:10M:autoextend 
    innodb_lock_wait_timeout=18000 
    
  • प्रारंभ सर्वर
    /etc/init.d/mysql start

+0

हां, अगर कॉन्फ़िगरेशन ठीक हैं तो लॉगफाइल को हटाना हर समय काम करता है। – rechie

+0

आपने अभी एक पूरी होस्टिंग कंपनी के भविष्य को बचाया है .... – spetsnaz

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