मैं बूट पर शुरू होने से MySQL को कैसे निष्क्रिय कर सकता हूं?


10

मेरे पास 2013 के मध्य में OSX 10.9 चल रहा है।

प्रत्येक स्टार्ट अप पर शुरू होने वाली प्रक्रिया है mysqld। मेरा मानना ​​है कि यह MySQL के पुराने संस्करण से था जिसे मैंने ( AMPPS के माध्यम से ) स्थापित किया था । फिर मैंने MAMP प्रो स्थापित किया और इन दोनों प्रक्रियाओं के बीच मेरा अक्सर टकराव होता है। हर बार जब मैं अपना मैक बंद करता हूं और फिर mysqldसे चालू करता हूं, तो मुझे इसकी प्रक्रिया ढूंढनी होगी (गतिविधि मॉनीटर पर), इसे छोड़ दें, और फिर MAMP (टर्मिनल कमांड के माध्यम से: /Application/MAMP/bin/startMysql.shकहीं और से काम नहीं करेगा) शुरू करें।

इसलिए मैं सोच रहा हूं कि मैं इसे mysqldहर स्टार्टअप पर चलने से कैसे निष्क्रिय कर सकता हूं ।


क्या आप psमूल प्रक्रिया को ट्रैक करने में सक्षम हैं और देखें कि क्या शुरू mysqldहो रहा है ?
bmike

देखते हैं कि किसी को अधिक लक्षित जानकारी है या नहीं। ट्रैकिंग प्रक्रियाओं और उन्हें टर्मिनल से मारना आसान नहीं है। आप एक्टिविटी मॉनिटर से एक ही जानकारी प्राप्त कर सकते हैं - mysql चुनें - फिर जानकारी, फिर मूल प्रक्रिया देखें।
bmike

1
सुपरयूज़र से संभावित सहायक उत्तर: सुपरयुसर
मिकी टीके

सुनिश्चित नहीं है कि यह मदद कर सकता है क्योंकि यह शुरू में लॉन्च किए गए अनुप्रयोगों के लिए है, हालांकि सिस्टम वरीयताएँ >> उपयोगकर्ता और समूह >> लॉगिन तत्वों पर एक नज़र है। आपको वह ऐप मिल जाएगा जो स्टार्टअप पर लॉन्च किए गए हैं।
फेलिसएम

क्या आपको यकीन है कि यह AMPPS है और स्टार्टअप पर चलने वाला MAMP नहीं है। कंप्यूटर को पुनरारंभ करें और 'ps -Awww | टर्मिनल में grep mysql '। यह कम से कम आपको बताना चाहिए कि कौन सा निष्पादन योग्य चल रहा है।
एमजे वाल्श

जवाबों:


10

टर्मिनल खोलें, फिर:

sudo launchctl list | grep -i mysql

launchctl remove xxx.xxx.mysql

जहां "xxx.xxx" पहले कमांड के आउटपुट में शामिल है, उदाहरण के लिए "org.macports.mysql"। "Sudo" कमांड का पासवर्ड आपके अपने उपयोगकर्ता खाते का पासवर्ड है।

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


2
sudo launchctl list | grep -i mysqlपैदावार नहीं हुई। न ही sudo launchctl list | grep -i mysqld i.imgur.com/WZ5EVjw.png
जकी अज़ीज़

आप AMPPS MySQL डेमॉन को निष्क्रिय करने के लिए AMPPS एडमिन पैनल का उपयोग कर सकते हैं। या बेहतर अभी तक, बस AMPPS की स्थापना रद्द करें क्योंकि आपके पास अब एक और ढांचा स्थापित है।
user64759

मैंने AMPPS की स्थापना रद्द कर दी है और मुझे अभी भी यह समस्या है।
जकी अज़ीज़

3

यदि MySQL का संस्करण जो पहले स्थापित किया गया था, वह SUN / Oracle साइट पर MySQL समुदाय डाउनलोड पृष्ठ से उत्पन्न हुआ था, तो संभावना है कि launchdयह mysqldप्रक्रिया के स्टार्टअप के साथ शामिल नहीं है। किसी कारण के लिए, MySQL के साथ वितरित स्टार्टअप स्क्रिप्ट बूट पर प्रक्रियाओं को शुरू करने के लिए पदावनत "स्टार्टअप आइटम" तकनीक का उपयोग करता है । वास्तव में, यहां तक ​​कि वर्तमान बाइनरी वितरण (5.6.15) स्टार्टअप का mysqldउपयोग करता है ओएस एक्स पर सर्वर शुरू करने के लिए (?) ?!

स्टार्टअप स्क्रिप्ट जो MySQL के परस्पर विरोधी संस्करण को लॉन्च कर रही है, सबसे अधिक संभावना है /Library/StartupItems/MYSQLCOM/MYSQLCOM। बूट समय पर, वह स्टार्टअप आइटम फ़ाइल को /etc/hostconfigयह निर्धारित करने के लिए जांच करेगा कि क्या "MYSQLCOM" चर के लिए सेटिंग "-YES-" पर सेट है या नहीं। यदि हां, तो स्टार्टअप स्क्रिप्ट लॉन्च होगी mysqld

यह कहने के लिए /etc/hostconfigनिर्दिष्ट लाइन में माईएसक्यूएल के स्टार्टअप को निष्क्रिय करना संभव होना चाहिए (जो कि अगले बूट पर स्टार्टअप प्रक्रिया को अक्षम करना चाहिए)।MYSQLCOM=-YES-MYSQLCOM=-NO-

आप वर्तमान में चल रहे उदाहरण mysqldको कमांड निष्पादित करके समाप्त कर सकते हैं :

sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stop

गलत mysqld प्रक्रिया के स्टार्टअप को स्थायी रूप से अक्षम करने के लिए , ऊपर दिए गए कमांड का उपयोग करके पहले डेमॉन को रोकना संभव होगा, और फिर निम्न कमांड का उपयोग करके MySQL स्टार्टअप आइटम को निकालना होगा:

sudo rm -rf /Library/StartupItems/MYSQLCOM

नोट: आपके पास MySQL प्राथमिकता फलक भी स्थापित हो सकता है /Library/PreferencePanes/MySQL.prefpaneया ~/Library/PreferencePanes/MySQL.prefpane... उस प्राथमिकता फलक को पुराने MySQL अधिष्ठापन के 'क्लीनअप' टुकड़ों को भी हटाया जा सकता है।


दुर्भाग्य से मेरे पास / etc / hostconfig फ़ाइल में कुछ भी नहीं है जो MySQL के साथ संबद्ध है: i.imgur.com/3C2jxPZ.png
Zaki Aziz

और sudo /Library/StartupItems/MYSQLCOM/MYSQLCOM stopपैदावार कुछ भी नहीं: i.imgur.com/ukHtW5x.png
जकी अज़ीज़

3

निम्नलिखित में से मेरे लिए काम किया mysql के साथ 8.0.12Homebrew का उपयोग कर स्थापित macOS Mojave 10.14.1:

rm -rf ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

यह घर पर स्थापित mysql स्थापित पर मुलाकात के लिए काम किया। धन्यवाद।
अलमास दुसाल

1

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

अन्य उत्तर लॉन्च एजेंटों और लॉन्च डेमों की तलाश के साथ-साथ पीआईडी ​​का पता लगाने के लिए कवर करते हैं, जो आमतौर पर डेमॉन के लिए काम नहीं करता है क्योंकि उनके पास आमतौर पर 1 के माता-पिता पीआईडी ​​होते हैं।

इसके अलावा, चूंकि mysql को Mavericks के साथ नहीं भेजा गया है, इसलिए आपको अपने द्वारा चुने गए पैकेज को ट्रैक करने में उपयोग mdfind mysqldकरने में सक्षम होना चाहिए या उस डेटाबेस को लाने वाले पैकेज का पता लगाने के लिए उपयोग करना चाहिए और फिर mysql के उस पैकेज के लिए अनइंस्टॉल / अक्षम निर्देशों का पता लगाना चाहिए। यदि आप सॉफ्टवेयर को शुरू करने के लिए वहां नियंत्रण स्थापित कर चुके हैं, तो आप सिस्टम प्राथमिकताओं में भी देखना चाहेंगे।


mdfind mysqldकोई AMPPS संबंधित MySQL फाइलें नहीं दिखाता है, सिर्फ MAMP संबंधित फाइलें (और कुछ अन्य MySQL प्रोग्राम्स की तरह जो मैंने MySQL कार्यक्षेत्र की तरह स्थापित की हैं)
Zaki Aziz

1

मूल प्रक्रिया क्या है जो आपके mysql ने शुरू की है, यह पता लगाकर शुरू करें। टर्मिनल से यह psजानने के लिए कि क्या प्रक्रिया है, एक कमांड चलाते हैं ; आप मूल आईडी का उपयोग कर सकते हैं -jया -lसूचीबद्ध कर सकते हैं ppid। तो यह आपको दिखाएगा:

$ ps -axjc | grep mysql

पहला कॉलम आपका उपयोगकर्ता आईडी है, दूसरा प्रक्रिया आईडी है, तीसरा अभिभावक आईडी है।

यदि पैरेंट आईडी 1 है तो इसे रूट लॉन्च डेमॉन द्वारा लॉन्च किया गया होगा, जिसका अर्थ है कि यह लॉन्चडैमन्स या स्टार्टअपइमें में से एक से आ रहा है। यदि यह ऐसी प्रक्रिया से आता है जो 1 नहीं है, लेकिन यह एक लॉन्च प्रक्रिया है, तो शायद लॉन्चएगेंट है या आपके सिस्टम लॉगिन आइटम में है।

root                1     0     1      0    0 Ss     ??    4:49.10 launchd
alblue            257     1   257      0    0 Ss     ??    0:16.29 launchd
_spotlight        415     1   415      0    0 Ss     ??    0:00.94 launchd

तो प्रक्रिया 1 को सिस्टम स्टार्टअप द्वारा लॉन्च किया गया है, और 1 की मूल प्रक्रिया के साथ कुछ भी सिस्टम डेमोंस से आता है। 257 की मूल प्रक्रिया के साथ कुछ भी (इस मामले में) LaunchAgents या LoginItems में से एक से लॉन्च किया जा रहा है।

यह ध्यान रखें कि लॉन्च डेमॉन या स्टार्टअप आइटम का नाम आवश्यक रूप से शीर्षक में 'mysql' नहीं है - यह एक अलग प्रोग्राम या लॉगिन आइटम द्वारा चलाया जा सकता है (इसलिए बस नाम से इसे खोजना संभव नहीं है) । एक बार जब आपने पाया कि इसे लॉन्च कर दिया है, तो आप यह पता लगाने में सक्षम हो सकते हैं कि यह कहां से आया है।

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