2016-02-09 13 views
8

मुझे पता है कि यह प्रश्न कई बार पहले से पूछा गया था लेकिन मेरी समस्या एक तालिका के साथ हो रही है जिसे मैंने अभी बनाया है। इसमें केवल 10 कॉलम हैं और इसमें केवल 1 पंक्ति है।MySQL परिवर्तन तालिका लटकती है

तो सामान्य लटकने की समस्या के विपरीत यह बहुत अधिक डेटा के साथ एक बड़ी तालिका का मामला नहीं है। और फिर भी यह लटकता है।

यह एसक्यूएल मैं चल रहा हूँ है:

ALTER TABLE `db`.`Search` 
ADD COLUMN `useremail` VARCHAR(256) NOT NULL COMMENT '' AFTER `id`; 

काफी सरल और अभी तक यह लटकी हुई है मैं Workbench और Eclipse छोड़ने और सभी java प्रक्रियाओं और एक mysqld प्रक्रिया को हटाने की कोशिश की (50 मिनट और गिनती।)। लेकिन कोई भाग्य नहीं है।

मैं Mac OSX El Capitain पर चल रहा हूं। मैं इस कॉलम को अपनी तालिका में कैसे जोड़ूं?

+0

क्या आप कृपया इस क्वेरी को 'पूर्ण प्रक्रिया सूची दिखाएं' चला सकते हैं और मुझे बताएं कि 'अलर्ट टेबल' डीबी' जैसी कोई क्वेरी है या नहीं। 'खोज' कॉलम 'उपयोगरेमेल' VARCHAR (256) जोड़ें 'आईडी के बाद' पूर्ण टिप्पणी नहीं 'चल रहा है? – 1000111

+0

@ सुब्रत डेपप्पू हां है। "राज्य" "टेबल मेटाडाटा लॉक की प्रतीक्षा कर रहा है।" – Eddy

+0

उस प्रक्रिया का पीआईडी ​​क्या है? टेबल में कितने रिकॉर्ड हैं? – 1000111

उत्तर

19

मुझे "mysql alter table hanging" खोजकर इस प्रश्न को मिला और लगता है कि उत्तर (टिप्पणियों में) दस्तावेज होना चाहिए।

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

SHOW PROCESSLIST; 

मेरे क्वेरी लटक रहा था, और यह संदेश state कॉलम में था:

Waiting for table metadata lock 

मैंने देखा मैं कई ज़ोंबी था मेरी मशीन से कनेक्शन, उन्हें मार डाला (KILL xxx जहां xxxId कॉलम में नंबर है), और फिर प्रक्रिया तुरंत समाप्त हो गई।

+2

बस जोड़ने के लिए ... 'kill' कमांड MySQL टर्मिनल के अंदर चलाया गया था, इसे बंद करने के लिए आवश्यक नहीं था। धन्यवाद! –

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