2012-05-17 9 views
174

मैं एक ऐसे प्रोजेक्ट पर काम कर रहा हूं जहां मुझे प्रत्येक उपयोगकर्ता के लिए 300 टेबल के साथ डेटाबेस बनाने की आवश्यकता है जो डेमो एप्लिकेशन देखना चाहता है। यह ठीक काम कर रहा था लेकिन आज जब मैं एक नया उपयोगकर्ता के साथ परीक्षण किया गया था एक डेमो देखने के लिए यह मुझे इस त्रुटि संदेश1030 स्टोरेज इंजन से त्रुटि 28 मिली

1030 Got error 28 from storage engine 

से पता चला है कि कुछ समय बिताने के googling मैंने पाया यह है कि डेटाबेस का स्थान या से संबंधित है एक त्रुटि हो जाने के बाद अस्थायी फ़ाइलें। मैंने इसे ठीक करने की कोशिश की लेकिन मैं असफल रहा। अब मैं mysql शुरू करने में भी सक्षम नहीं हूं। मैं इसे कैसे ठीक कर सकता हूं और मैं आकार को अधिकतम में भी बढ़ाना चाहता हूं ताकि मुझे बार-बार एक ही समस्या का सामना नहीं करना पड़े।

+1

स्पष्ट उन्होंने कहा के लिए काम किया है ... आप विभाजन पर पर्याप्त रिक्त स्थान है जहां mysql डेटा संग्रहीत किया जाता है? आप किस प्लेटफॉर्म पर चल रहे हैं? लोकलहोस्ट या एक होस्टिंग कंपनी? – DCoder

+0

@ डीकोडर: - मेरे पास अमेज़ॅन क्लाउड – ScoRpion

+1

@ShowketBhat पर एक सर्वर है, मेरे पास एक ही समस्या है, मेरे '/ tmp' फ़ोल्डर में अंतरिक्ष का 100% उपयोग है। इस/tmp फ़ोल्डर से बस सभी फ़ाइलों को मिटाना ठीक है? और एक और सवाल, यह स्वचालित रूप से क्यों नहीं हटाता है? –

उत्तर

349

था Mysql त्रुटि "28 भंडारण इंजन से" - का अर्थ है "पर्याप्त डिस्क स्थान नहीं"।

नीचे डिस्क स्पेस उपयोग कमांड दिखाने के लिए।

myServer# df -h 

परिणाम इस तरह होना चाहिए।

Filesystem Size Used Avail Capacity Mounted on 
/dev/vdisk  13G  13G  46M 100% /
devfs   1.0k 1.0k  0B 100% /dev 
+5

अतिरिक्त जानकारी के लिए, यदि आप/tmp फाइल सिस्टम 100% उपयोग तक पहुंचते हैं तो आपको एक ही त्रुटि मिल जाएगी। – Kumar

+1

भले ही आपके पास एक अलग विभाजन (या डिस्क) में आपका MySQL डेटा_डिर है, जिसमें खाली स्थान है, तो आपके पास/और/tmp पर निश्चित स्थान होना चाहिए (बेशक आप एक अलग विभाजन/डिस्क पर अंतिम हो सकते हैं) –

+1

आपने सहेजा मेरे दिन, मुझे धीमी लॉग की 390 जीबी फ़ाइल मिली है (( – mulya

8

मेरे पास एडब्ल्यूएस आरडीएस में एक ही समस्या थी। यह फ्रीटेबल स्पेस (हार्ड ड्राइव स्टोरेज स्पेस) के कारण पूर्ण था। आपको अपनी जगह बढ़ाने या कुछ डेटा हटाने की जरूरत है।

32

इस पर विस्तार करने के लिए (भले ही यह एक पुराना प्रश्न है); यह शायद MySQL स्पेस के बारे में नहीं है, लेकिन आम तौर पर अंतरिक्ष के बारे में, टीएमपी फाइलों या उसके जैसा कुछ मानते हैं। मेरे mysql डेटा dir पूर्ण नहीं था,/(रूट) विभाजन

5

मेरा/टीएमपी% 100 था। सभी फ़ाइलों को हटाने और mysql को पुनरारंभ करने के बाद सब ठीक काम किया।

2

मेरा/var/log/apache2 फ़ोल्डर 35 जी था और कुछ लॉग इन/var/log में 40g हार्ड ड्राइव के अन्य 5 जी होने के लिए कुल मिलाकर। मैंने सभी * .gz लॉग साफ़ कर दिए और यह सुनिश्चित करने के बाद कि यदि मैं उनके साथ गड़बड़ कर रहा हूं तो अन्य लॉग बुरी चीजें करने जा रहे हैं, मैंने उन्हें भी साफ़ कर दिया।

echo "clear" > access.log 

आदि

+3

लॉग फ़ाइल को साफ़ करने का यह एक बहुत ही अजीब तरीका है, है ना? क्यों न सिर्फ आरएम? – user1175849

+3

हो सकता है कि आप फ़ाइल और अनुमतियां रख सकें? –

+6

मैं लॉग साफ़ करने के लिए 'ट्रंकेट' का उपयोग करने की सलाह देता हूं, 'truncate -s 0 access.log' –

1

मैं क्योंकि मेरे प्रतिकृति द्विआधारी लॉग की एक ऐसी ही मुद्दा था।

यदि यह मामला है, सिर्फ इस क्वेरी हर दिन चलाने के लिए एक cronjob बनाएँ:

PURGE BINARY LOGS BEFORE DATE_SUB(NOW(), INTERVAL 2 DAY); 

यह 2 दिनों से पुराने सभी द्विआधारी लॉग निकाल देंगे।

मुझे यह समाधान here मिला।

0

एक साधारण: $ sth-> खत्म(); शायद आपको इस बारे में चिंता करने से बचाएगा। MySQL अपने स्वयं के स्थान की बजाय सिस्टम की tmp स्पेस का उपयोग करता है।

1

यह देखने के लिए अपने/बैकअप की जांच करें कि क्या आप पुराने आवश्यक बैकअप को हटा सकते हैं या नहीं।

0
sudo su 


cd /var/log/mysql 

और अंत के प्रकार: > mysql-slow.log

यह मैं

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