"Mysql मुख्य प्रक्रिया को विफल करने में विफल: निष्पादित करने में असमर्थ: ऐसी कोई फ़ाइल या निर्देशिका नहीं"


56

मैं MySQL ग्राउंड पर नौसिखिया हूं इसलिए मेरे साथ सहन कर रहा हूं।

मैंने अभी 11.10 से 12.04 तक उन्नयन किया है।

सब कुछ बिना किसी हिचकी के काम करने लगा और मेरे सभी सॉफ्टवेयर और सेटिंग्स ठीक काम कर रहे हैं। इसके अलावा MySQL के अलावा।

जब मैं कोशिश करता हूं:

sudo start mysql

मुझे एक त्रुटि प्राप्त हुई:

start: Job failed to start

मैं संभवतः यह कैसे पता लगा सकता हूं कि समस्या क्या है? और (उम्मीद से) - इसे कैसे सुलझाया जाए?

( अगर कुछ महत्त्व का हो तो मैंने यहां सलाह के बाद स्वचालित शुरुआत को अक्षम कर दिया है)


अपडेट 1:

दोनों के आउटपुट:

cat /var/log/mysql.err 
cat /var/log/mysql.log

खाली हैं।

का आउटपुट dmesg | grep mysql:

[ 1401.785141] type=1400 audit(1335619832.181:25): apparmor="STATUS" operation="profile_replace" name="/usr/sbin/mysqld" pid=16165 comm="apparmor_parser"
[ 1401.791089] init: Failed to spawn mysql main process: unable to execute: No such file or directory

अपडेट 2:

जैसा कि नीचे दिए गए AWinter द्वारा इंगित किया गया है - ऐसा लगता है कि MySQL नवीनीकरण के बाद स्वचालित रूप से गायब हो गया था और इसे फिर से स्थापित करना पड़ा।

जवाबों:


48

जांचें कि mysql-server-5.1 पैकेज की स्थापना रद्द कर दी गई थी, ऐसा लगता है कि यह अपग्रेड के बाद भी बना रह सकता है। मेरे पास एक ही त्रुटि थी और MySQL सर्वर 5.1 और 5.5 को फिर से इंस्टॉल करना था।

सबसे पहले सुरक्षित होने के लिए अपने / var / lib / mysql / निर्देशिका का बैकअप बनाएं।

sudo cp -R /var/lib/mysql/ ~/mysql

अगला purge MySQL (यह php5-mysql और phpmyadmin को हटा देगा और साथ ही कई अन्य लाइब्रेरी भी करेगा ताकि इसके बाद कुछ आइटम फिर से इंस्टॉल करने के लिए तैयार रहें।

sudo apt-get purge mysql-server-5.1 mysql-common

फ़ोल्डर / etc / mysql / निकालें और यह सामग्री है

sudo rm /etc/mysql/ -R

अगला जांचें कि आपकी पुरानी डेटाबेस फाइलें अभी भी / var / lib / mysql में हैं / यदि वे नहीं हैं तो उन्हें वापस फ़ोल्डर में कॉपी करें फिर रूट रूट करें: root

(केवल इन्हें चलाएं यदि फाइलें अब नहीं हैं)

sudo mkdir /var/lib/mysql/
sudo chown root:root /var/lib/mysql/ -R
sudo cd ~/mysql/
sudo cp * /var/lib/mysql/ -R

अगला mysql सर्वर स्थापित करें

sudo apt-get install mysql-server

अंत में phpmyadmin और php5-mysql जैसे किसी भी लापता पैकेज को फिर से स्थापित करें।


1
अति उत्कृष्ट। आकर्षण के रूप में काम किया। सब फिर से काम कर रहे हैं। एक नोट: मुझे इस निर्देशिका को हटाने की आवश्यकता sudo rm /etc/mysql/ -Rनहीं थी - यह केवल मेरे मामले में मौजूद नहीं था। वैसे भी - सौभाग्य से यह वर्डप्रेस का परीक्षण करने के लिए सिर्फ एक स्थानीय इंस्टॉल था .. आश्चर्य है कि एक वास्तविक सर्वर ओ_ओ पर क्या होगा
radek

apt-get --reinstall mysql-server-xx ने मेरे लिए काम किया।
यशीमा

यह मेरे लिए काम करता है, लेकिन मुझे शायद apt-get updateपहले एक हाथ करना चाहिए था , क्योंकि इसने dovecot और php5-mysql को हटा दिया था। मैं अद्यतन के बाद ही इनको पुनः स्थापित कर सका। एक बार मैंने किया था, सब कुछ एक बार फिर से ठीक काम कर रहा था।
एंटोनचैनिंग

मुझे मिलता है -bash: cd: /var/lib/mysql/: Permission deniedऔर उपयोग sudo -iकरने से भी काम नहीं चलता है।
शार्लेट 5

@LittleBigBot मैंने एक बदलाव किया जिसे ठीक करना चाहिए।
AWinter


12

मेरे पास यह एक ही मुद्दा था और मेरे लिए यह InnoDB लॉगफाइल्स एक अलग आकार था, जो mysql उम्मीद कर रहा था, और उन्नयन के दौरान चुपचाप विफल रहा।

मेरे पास एक कस्टम कॉन्फ़िगरेशन फ़ाइल थी जिसे 12.04 के अपग्रेड पर मिटा दिया गया था जो लॉग फ़ाइल के आकार को डिफ़ॉल्ट कॉन्फ़िगरेशन के अलावा किसी अन्य चीज़ के लिए सेट करता है।

आपको फाइलें निकालनी होंगी: / var / lib / mysql / ib_logfile *

फ़ाइलों के चले जाने के बाद, mysql अब शुरू हो सकता है और डिफ़ॉल्ट आकार की ताज़ा लॉग फ़ाइलें बना सकता है।


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

बिंगो - ने innodb_log_file_size के लिए कॉन्फ़िगरेशन सेटिंग बदल दी।
ट्वीक 2

9

अधिकांश त्रुटियां वर्बोज़ नॉन-डेमॉन मोड में सर्वर को शुरू करने और आउटपुट देखने के द्वारा दिखाई देंगी:

sudo mysqld --verbose

7

मुझे भी यही समस्या थी, लेकिन ऊपर दिए गए किसी भी उत्तर ने मेरी मदद नहीं की। इसलिए एक अंतिम आशा के रूप में मैंने कुछ डिस्क स्थान खाली करने की कोशिश की। मैं बस / var / log से अनावश्यक लॉग फ़ाइलों को हटा देता हूं, जिन्होंने कुछ 2.5G स्थान को मुक्त कर दिया। फिर MySQL सामान्य रूप से शुरू हुआ।


हां, यह मेरी समस्या भी थी। mysql बूटअप के दौरान शुरू नहीं हो रहा था, जैसा कि यह था। बाद में सिस्टम जानकारी थी जो टर्मिनल को प्रदान करती है; "का उपयोग /: 95.1%" तो, शुरू करने के लिए mysql (और अन्य प्रक्रियाओं) के लिए पर्याप्त खाली स्थान नहीं था। मुझे कुछ फ़ाइल क्लीनअप करने की आवश्यकता थी, और mysql बिना किसी समस्या के शुरू हुआ।
स्क्रीनबैक

यह मेरा मामला था। डिस्क क्लीनअप और मैसकल काम करना शुरू करते हैं।
सेर्गेई रोमानोव

5

यह कभी-कभी होता है और हालांकि कुछ अलग-अलग समस्याएं हैं जो mysql को शुरू नहीं कर सकती हैं मैं यहां कुछ सबसे आम लिखूंगा जिन्हें मैं जानता हूं:

ध्यान दें - क्योंकि मैं आपको पहले से ही हटाने और स्थापित करने, या बस mysql सेवा को फिर से स्थापित करने की कोशिश कर रहा हूं, यह मानकर कि मैं सबसे आम समस्याओं की व्याख्या कर रहा हूं:

इंस्टाल करने के लिए - sudo apt-get install mysql-server mysql-client
To Remove - sudo apt-get remove mysql-server mysql-client
To Purge (फाइल्स + कॉन्फिगर हटाएं) - रीइंस्टॉल sudo apt-get purge mysql-server mysql-client
करने के लिए -sudo apt-get install --reinstall mysql-server mysql-client

  1. my.cnfफ़ाइल डिफ़ॉल्ट निर्देशिका में नहीं है। यह होना चाहिए (डिफ़ॉल्ट रूप से) /etc/my.cnfया तो में स्थित होना चाहिए /etc/mysql/my.cnf

  2. हार्ड ड्राइव में पर्याप्त जगह नहीं है जहां mysql डेटा फाइलें स्थित हैं। यदि डेटाबेस बहुत बड़ा हो जाता है और हार्ड ड्राइव का 100% हिस्सा ले लेता है, तो सेवा विफल हो जाएगी।

  3. अपग्रेड के बाद जांच लें कि my.cnfफाइल सही जगह पर है। आप कैसे उन्नत बनाया पर या किस संस्करण से उन्नत बनाया से निर्भर करता है, उस में हो सकता है /etc/my.cnfया /etc/mysql/my.cnfपहले उल्लेख किया है के रूप में। यह भी याद रखें कि फ़ाइल को नाम दिया जा सकता है mysql.confऔर न कि सिर्फ my.cnf। यह उन मामलों में होता है जहां आपने mysql.com से बाइनरी डाउनलोड की है ।

  4. एक कर dmesgरहा है क्या mysql सेवा के रूप में एक त्रुटि संदेश में मदद करता है के बाद से यह लोड हो रहा है त्रुटि देता है फेंक कर रहा है। यह भी कह सकते हैं कि ऐसा क्यों हो रहा है। यदि आप dmesgटर्मिनल में अकेले टाइप करते हैं तो यह आपको दुनिया दिखाएगा। हम जो चाहते हैं वह mysql के बारे में जानकारी है, इसलिए कुछ इस तरह से करें: dmesg | grep mysqlयह आपको उन सभी लाइनों को फेंक देगा जिनमें mysql शामिल हैं।

  5. जाँच करें कि my.cnfया mysql.confफ़ाइल सही है। 12.04 में MySQL 5.5 संस्करण है, 11.10 में यह संस्करण 5.1 है। यह फ़ाइल में कुछ परिवर्तन हो सकता है (वास्तव में जाँच नहीं किया गया है) और यह मूर्खतापूर्ण लग सकता है, लेकिन यह आपको कुछ परेशानी दे सकता है।

  6. सॉकेट की समस्याओं से संबंधित त्रुटियां सामान्य रूप से गलत जगह की ओर इशारा करते हुए my.cnfया mysql.confफ़ाइल की गलती हैं, वे त्रुटि सामान्य रूप से दिखाएंगे:

    सॉकेट '/var/run/mysqld/mysqld.sock' के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं किया जा सकता

    इस समस्या का दूसरा स्रोत उस mysqlफ़ाइल से संबंधित है /etc/init.dजिसमें यह गलत फ़ोल्डर की ओर इशारा कर रहा है क्योंकि यह सिस्टम पर वास्तविक mysql के लिए आवश्यक की तुलना में पुरानी स्क्रिप्ट का उपयोग कर रहा हो सकता है (यह सही तरीके से अपडेट नहीं हो सकता है, ओवरराइट नहीं किया है विन्यास फाइल, आदि ..)। तो बस इस दो फ़ाइलों में से किसी को संपादित करें और देखें कि क्या वे कहीं और इंगित कर रहे हैं और फिर बस sudo service mysql restartयह जांचने के लिए कि क्या यह काम करता है।

  7. Mysql के विशिष्ट आउटपुट में त्रुटि पर बेहतर नज़र डालने के लिए निम्नलिखित कार्य करें:

    cat /var/log/mysql.err- आप mysql त्रुटियों को दिखाएगा। मैं इसे इस तरह से बनाऊंगा cat /var/log/mysql.err | lessयदि आप बहुत अधिक जानकारी के लिए उड़ान भरते lessहैं, तो आपको आउटपुट के माध्यम से अपना रास्ता स्क्रॉल करने में मदद मिलेगी cat

    उसी के लिए जाता है cat /var/log/mysql.logयदि आप वहां त्रुटि देखते हैं तो शायद इसे प्रश्न में डाल दें या टिप्पणी के रूप में यह तेजी से उत्तर देने में मदद करेगा।

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

यदि सब कुछ अच्छा है, तो यह जांचने के लिए कि mysql सेवा चल रही है या नहीं service mysql status

एक अंतिम उपाय के रूप में। यदि आप mysql चलाने जा रहे हैं, लेकिन आप लॉगिन नहीं कर सकते हैं तो निम्न प्रयास करें:

  1. MySQL सर्वर बंद करो:

    sudo /etc/init.d/mysql stop या sudo service mysql stop

  2. mysqldमैन्युअल कॉन्फ़िगरेशन के साथ मैन्युअल रूप से सेवा प्रारंभ करें

    sudo mysqld --skip-grant-tables &

    (और जोड़ना याद रखें और आपको एक और टर्मिनल खोलना होगा। यह प्रक्रिया पृष्ठभूमि को भेजती है और आप उसी टर्मिनल का उपयोग करके मार सकते हैं)।

  3. ROOT के रूप में mysql डेटाबेस में लॉगिन करें

    mysql -u root mysql

  4. अपने नए पासवर्ड के साथ MyPASSWORD की जगह निम्नलिखित टाइप करें

    UPDATE user SET Password=PASSWORD('MyPASSWORD') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;

यह फिर से रूट के रूप में आपकी मैसकल सेवा में प्रवेश करने के लिए पर्याप्त होना चाहिए। आशा है ये मदद करेगा।


त्वरित प्रतिक्रिया के लिए धन्यवाद। my.cnf फ़ाइल /etc/mysql/my.cnfमेरे मामले में है। क्या वह सही स्थान है? dmesgमुझे आउटपुट की बहुत खुशी देता है जो मेरी समझ से परे है: / मैंने वास्तव में 5.1 स्थापित किया था - क्या इसका कोई परिणाम है?
रादेक

1
यदि आप फ़ाइल ढूंढते हैं तो स्थान के बारे में चिंता न करें। मुझे dmesg में mysql आउटपुट को बेहतर रूप देने के लिए उत्तर को अपडेट करने दें।
लुइस अल्वारादो

4

मुझे Ubuntu सर्वर 12.04 LTS में अपग्रेड करने के बाद भी यही समस्या थी

sudo apt-get install mysql-server 

इसे ठीक करने के लिए पर्याप्त था, हालांकि यह स्पॉटवेब के एक पुराने डेटाबेस के बारे में शिकायत करता था। मैंने तय किया कि स्पॉटवेब हटाकर:

sudo apt-get purge spotweb

और mysql को फिर से जोड़ना:

sudo dpkg-reconfigure mysql-server-5.5

4

मैं इस घटना को किसी ऐसे ही मुद्दे का सामना कर जोड़ दूंगा। मैंने सभी अनइंस्टॉल करने की कोशिश की और फिर से कोई फायदा नहीं हुआ। समाधान खोजने की कुंजी यह थी कि इस फ़ोल्डर में ऊपर की ओर त्रुटि वाले स्थान हैं

/ Var / log / नवोदय /

mysql के लिए

/var/log/upstart/mysql.log

जब मैंने खोला तो यह संदेश था

/Etc/apparmor.d/usr.sbin.mysqld in /etc/apparmor.d/tunables/global के लिए AppArmor parser त्रुटि 15 पंक्ति में: 'tunables / home' नहीं खोल सका

जब मैंने /etc/apparmor.d/tunables/ फ़ोल्डर में देखा, तो मैं उस घर की फ़ाइल को याद कर रहा था, जिससे मैंने बनाया

gedit /etc/apparmor.d/tunables/home और उन दूसरे कंप्यूटर से सामग्री की प्रतिलिपि बनाई गई, जिनमें ये गैर-टिप्पणी लाइनें थीं

@ {HOME} = @ {HOMEDIRS} / * / / root /

@ {HOMEDIRS} = / घर /

किसी को यहां एक समान मुद्दे का सामना करना पड़ता है

https://bugs.launchpad.net/ubuntu/+source/mysql-5.5/+bug/982303

उसके बाद मैं इस सेवा को पुनः आरंभ करने में सक्षम था



1

उन्नयन के बाद मैंने पाया कि mysql-server / mysql-server-5.5 स्थापित नहीं था और न ही 5.1। मैंने अपना नाम बदलकर my.cnf_old कर लिया और मैंने mysql-serven स्थापित करने का प्रयास किया। स्थापना के दौरान एक त्रुटि संदेश था कि रूट पासवर्ड सेट नहीं किया जा सकता था। इसके बाद मैंने अपने कॉन्फिगर्स, एपरमोर वगैरह को चेक किया। सब ठीक लग रहा था। मेरा अगला प्रयास mysql-server को फिर से कॉन्फ़िगर करने का था लेकिन यह शिकायत करता था कि पैकेज पूरी तरह से स्थापित नहीं था। इसलिए मैंने अनइंस्टॉल करने का फैसला किया और इस दौरान उपयुक्त पैकेज तय किया और अब यह काम कर रहा है। मुझे नहीं पता कि क्यों मैंने कुछ नहीं बदला।


1

मुझे भी ऐसी ही समस्याएँ थीं, लेकिन जल्दी ही मुझे समझ में आ गया, जो मुझे याद था कि यह मुद्दा मुझे पहले दे दिया था।

यदि आप इन सेटिंग्स में बदलाव करते हैं और आपका सिस्टम एपर्मर का उपयोग करता है, तो आपको /etc/apparmor.d/usr.sbin.mysqld को भी समायोजित करना पड़ सकता है। उदाहरण के लिए। इन पंक्तियों को जोड़ा गया था (my.cnf के लिए एक सिमलिंक की अनुमति देने के लिए, और सिम्लिंक की गई फ़ाइल को पढ़ने की अनुमति देने के लिए, संभवतः):

/ usr / sbin / mysqld {... /etc/mysql/*.cnf lr, /path/to/symlinked/my.cnf r, ...}


1

मेरे मामले में मैंने Ubuntu 12.04 की एक नई स्थापना पर MySQL को स्थापित करने की कोशिश की, लेकिन मुझे समझ नहीं आया कि इसने मुझे 'रूट' उपयोगकर्ता के लिए पासवर्ड सेट करने में त्रुटि क्यों दी। मैंने ऊपर दिए गए सभी समाधानों की कोशिश की, लेकिन कुछ नहीं किया।

तब मैंने सब कुछ शुद्ध करने / हटाने का फैसला किया, मैंने MySQL सर्वर को अनइंस्टॉल कर दिया और उसके सभी फोल्डर (/ etc / mysql / and / var / lib / mysql /) को हटा दिया, आखिरकार एक तरह की यादृच्छिकता के लिए धन्यवाद जिसने इस दौरान कोई त्रुटि नहीं दी। पुनर्स्थापना और मैं पासवर्ड सेट करने और सर्वर इंस्टेंस को शुरू करने में सक्षम था।


0

टर्मिनल में आप इसे फिर से इंस्टॉल कर सकते हैं, और इसे my.cnf चला सकते हैं जो आप टाइप कर सकते हैं:

sudo apt-get install mysql-server-5.1
sudo apt-get --reconfigure mysql-server-5.1
sudo apt-get update
sudo start mysql my.cnf

यह इस तरह से काम कर सकता है।


0

मैं दिक्कत यह है कि जोड़ने हो रहा है performance_schemaके तहत [mysqld]में /etc/mysql/my.confकारणों इस विफलता। उस लाइन को हटा दिया और mysql फिर से शुरू करने में सक्षम था।

संपादित करें: पता चलता है कि RAM का एक टमटम केवल इतना नहीं है कि वह mysqld को start_schema सक्षम के साथ शुरू कर सके। मैं 3 गिग्स से टकराया और यह ठीक काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.