सवाल MySQL क्रैश हो रहा है: InnoDB: लॉक करने में असमर्थ ./ibdata1, त्रुटि: 11


मेरे पास एक साधारण वेबसर्वर (डेबियन 6.0 x86, डायरेक्टएडमिन 1 जीबी मेमोरी है और अभी भी 10 जीबी फ्री स्पेस, MySQl संस्करण 5.5.9) है, हालांकि mySQL सर्वर क्रैश हो रहा है और मुझे इसे फिर से शुरू करने में सक्षम होने के लिए सभी mySQL प्रक्रियाओं को मारने की आवश्यकता है फिर।

/var/log/mysql-error.log उत्पादन:

130210 21:04:26 InnoDB: Using Linux native AIO
130210 21:04:34 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:05:42 InnoDB: Completed initialization of buffer pool
130210 21:05:48 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:06:22 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:06:27 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:06:29 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:07:22 InnoDB: Completed initialization of buffer pool
130210 21:07:51 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:08:33 InnoDB: Completed initialization of buffer pool
130210 21:12:03 [Note] Plugin 'FEDERATED' is disabled.
130210 21:12:47 InnoDB: The InnoDB memory heap is disabled
130210 21:12:47 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
130210 21:12:47 InnoDB: Compressed tables use zlib 1.2.3
130210 21:12:47 InnoDB: Using Linux native AIO
130210 21:13:11 InnoDB: highest supported file format is Barracuda.
130210 21:13:23 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
130210 21:14:05  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
130210 21:17:53  InnoDB: Unable to open the first data file
InnoDB: Error in opening ./ibdata1
130210 21:17:53  InnoDB: Operating system error number 11 in a file operation.

मुझे mySQL वेबसाइट पर एक विषय मिला है यहाँ हालांकि इसके लिए कोई समाधान नहीं है।

कोई विचार किसी को भी?


38
2018-02-10 22:01


मूल


और MySQL का कौन सा संस्करण यह है? - Michael Hampton♦
मुझे समझ में नहीं आता - लॉग फ़ाइल का यह हिस्सा MySQL के साथ समस्या के बारे में बताता है त्रुटि के कारण के बारे में नहीं। समस्या का स्रोत निकालना सबसे अच्छी बात है। - Krzysztof Księżyk
@MichaelHampton पोस्ट संपादित किया गया है (mySQL संस्करण 5.5.9 और लॉग में वृद्धि हुई)। - Devator
क्या आपने जांच की थी कि इसे शुरू करने से पहले कोई रन नहीं चल रहा था? कैसे? - symcbean


जवाब:


एक ही ब्लॉग में एक टिप्पणी से एक और दृष्टिकोण:

इससे मेरी मदद की:

lsof -i: 3306

फिर इसे मारो (प्रक्रिया संख्या)

हत्या -9 प्रक्रिया

जैसे मार -9 13498

फिर फिर से MySQL को पुनरारंभ करने का प्रयास करें।

के जरिए http://www.webhostingtalk.com/archive/index.php/t-1070293.html


30
2018-02-10 23:04



service mysql restart पहले से ही कोई चल रही प्रक्रिया नहीं दिखा रहा था, लेकिन lsof मिल गया। इसे मार दिया, service mysql start, और अब प्रक्रिया की बाढ़ विफल रही ईमेल रोक सकते हैं। बहुत धन्यवाद। - Doyle Lewis


उबंटू 14.04 के साथ। जब मैं फिर से शुरू करने का प्रयास करता हूं तो मुझे इस समस्या का सामना करना पड़ रहा है

/etc/init.d/mysql restart

इसके बजाय कोशिश करें

service mysql restart 

27
2018-02-05 22:21



धन्यवाद, यह मदद की। पर क्यों? - too
@too askubuntu.com/questions/2075/... - mloskot
@too, अगर आपके पास पुरानी शैली init.d स्क्रिप्ट है तथा नौकरी के लिए अपस्टार्ट कॉन्फ़िगरेशन, आपको इसका उपयोग करना होगा service job start, अन्यथा यदि आप इसे init.d स्क्रिप्ट से प्रारंभ करते हैं, तो अपस्टार्ट इसके बारे में नहीं जान पाएगा और यह एक और उदाहरण बूट करने का प्रयास कर सकता है। (कम से कम यह MySQL की डिफ़ॉल्ट init स्क्रिप्ट के साथ मामला है।) - wireman
@ वायरमैन: यह बताता है कि गाँठ (DNS सर्वर) सहित अन्य पैकेजों में समान समस्याएं क्यों हैं। जब उन्होंने इसे लागू करने का फैसला किया? मुझे लगता है कि /etc/init.d बेहतर है क्योंकि यह खोल समापन की अनुमति देता है जिससे उपयोगकर्ता अत्यधिक टाइपिंग से राहत देता है। -1 की शक्ति के लिए प्रगति :) - too
@too बैश टैब पूर्णता अनुकूलन योग्य है। उबंटू को कुछ भी आसान नहीं है, लेकिन ऐसा लगता है कि कोई भी टैब-पूर्ण करने का विचार नहीं करता था service नाम। हो सकता है कि उनके बग ट्रैकर के माध्यम से कैनोनिकल को एक फीचर अनुरोध सबमिट करें? - α CVn


इस समस्या का सबसे आम कारण MySQL को पहले से चलने पर शुरू करने का प्रयास कर रहा है।

इसे हल करने के लिए, MySQL के किसी भी चल रहे उदाहरणों को मार दें और फिर अपनी सामान्य स्टार्टअप स्क्रिप्ट का उपयोग करके इसे पुनरारंभ करें, उदा। service mysql start

वितरण-पैक किए गए संस्करणों का उपयोग करते समय MySQL मैन्युअल रूप से प्रारंभ करने का प्रयास न करें जबतक कि आप चोट की दुनिया के लिए तैयार न हों।


17
2018-02-10 22:16



however the mySQL server keeps crashing - मैं mySQL को पुनरारंभ नहीं करता हूं। यह सिर्फ खुद को दुर्घटनाग्रस्त करता है, जिसके बाद मुझे इसे स्पष्ट रूप से पुनरारंभ करने की आवश्यकता होती है। ;-) - Devator
@MichaelHampton क्या आप 'चोट की दुनिया' और 'MySQL मैन्युअल रूप से शुरू' के बारे में कुछ और जानकारी दे सकते हैं? धन्यवाद) - sergekv


उपाय

मूल फ़ाइलों की प्रतिलिपि बनाएं (ibdata1, ib_logfile0, ib_logfile1 ...)।

mv ibdata1 ibdata1.bak 
cp -a ibdata1.bak ibdata1

http://cglreport.zhenhua.info/2008/08/mysql-error-unable-to-lock-ibdata1.html


10
2018-02-10 23:01



जादूगर ने मेरी मदद की। - nils petersohn
सीपी-ए का क्या मतलब है?, मैंने पहले से ही मैन पेज पढ़ा है - Ilja
बहुत धन्यवाद, यह मदद की। पर क्यों? - DaviAragao
एक डॉकर कंटेनर में चल रहे डीबी पर असफल होने के बाद मुझे यह समस्या थी। मैं एक शिक्षित अनुमान बना रहा हूं कि यह क्यों काम करता है और यह है कि फ़ाइल में कुछ मेटा डेटा संग्रहीत किया जाता है। इसे स्थानांतरित करना और इसे अपने मूल स्थान पर कॉपी करना मेटाडेटा को लॉक करने का निर्धारण करता है। -ए ऑपरेशन प्रतिलिपि के दौरान, SELinux संबंधित विशेषताओं सहित फ़ाइल विशेषताओं को बनाए रखता है, लेकिन मेटाडेटा नहीं। - JDL


इससे मुझे इसे हल करने में मदद मिली:

सभी ibdata फ़ाइलों को हटाएं और mysql उन्हें बनाने दें।

mysql को रोकें:

service mysql stop

mysql लाइब्रेरी पर जाएं:

cd /var/lib/mysql/

यदि आपको इसकी आवश्यकता हो तो कहीं भी innodb फ़ाइलों को स्थानांतरित करें:

mv ib* /root/

mysql शुरू करें:

service mysql start

2
2018-01-13 11:28



सहायक उत्तरों के माध्यम से स्क्रॉल करना मैंने सोचा कि निश्चित रूप से ऐसा लगता है कि यह काम करेगा क्योंकि त्रुटि उस फ़ाइल को लॉक करने में सक्षम नहीं होने के बारे में शिकायत कर रही है। आगे बढ़ने के बाद, MySQL ने उन्हें फिर से बनाया लेकिन अभी भी शिकायत कर रहा है ... पागल! - Kyle Burkett


एक ही दोहराव त्रुटि के googling से यहाँ आया लेकिन त्रुटि कोड 13 के साथ (InnoDB: Unable to lock ./ibdata1, error: 13)। इंटरनेट के आसपास कई समाधानों की कोशिश करने के बाद, जिसने मेरी मदद की (एपर्मर!) का आविष्कार किया

कॉन्फ़िगरेशन में इन पंक्तियों को जोड़ें /etc/apparmor.d/usr.sbin.mysqld (और निश्चित रूप से एपर्मर और mysql पुनः लोड):

/path/to/mysql/data/ r,
/path/to/mysql/data/** rwk,

अक्सर समाधान के बीच मुख्य अंतर: दो नियम (डीआईआर के लिए और अंदर सभी फाइलों के लिए, डबल नोट करें **) तथा k MySQL को फ़ाइलों को लॉक करने की अनुमति देने का विकल्प।

उम्मीद है कि यह किसी की मदद करेगा।


1
2018-03-15 18:22



आप इसे भी जोड़ सकते हैं /etc/apparmor.d/local/usr.sbin.mysqld। अगर फ़ाइल मौजूद नहीं है तो फ़ाइल बनाएं। अधिक जानकारी के लिए, कृपया देखें /etc/apparmor.d/local/README - knb


यह सुनिश्चित करने के लिए अंतरिक्ष की जांच करें कि यह 100% है

df -h

जैसे कि यह पूर्ण है, यह .sock फ़ाइल नहीं बनायेगा।


1
2018-02-04 14:30



जवाब एक आश्चर्यजनक दुष्प्रभाव के बारे में है, मैं दृढ़ता से असहमत हूं कि यह एलक्यू होगा। - peterh


कृपया जांचें कि आपके पास है pid-file में पैरामीटर [mysql] का संभाग my.cnf फ़ाइल। यदि यह मौजूद नहीं है, तो unable to lock ...ibdata1.. error:1 घटित होगा।


0
2018-01-20 19:24