Mac OS X Yosemite / El Capitan पर ऑटोस्टार्ट MySQL सर्वर


84

मैं स्टार्टअप पर MySQL सर्वर को ऑटो स्टार्ट करना चाहूंगा। यह मावेरिक्स में संभव था लेकिन लगता है कि योसेमाइट पर काम नहीं किया जा रहा है।

संपादित करें : लगता है कि यह El Capitan के साथ भी काम करता है

यहाँ छवि विवरण दर्ज करें

जवाबों:


143

@ डीसीसी बहुत करीब थी। इस तरह से MySQL ऑटोसार्ट्स फिर से योसेमाइट पर है:

com.mysql.mysql.plistमें /Library/LaunchDaemons:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/local/mysql/bin/mysqld_safe</string>
    <string>--user=mysql</string>
    </array>
  </dict>
</plist>

इसके अतिरिक्त मैंने इस उत्तर के आधार पर अनुमतियां बदल दी हैं

sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist

अंत में मैं यह कमांड चलाता हूं

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

यदि आपके पास कोई अतिरिक्त है तो कृपया नीचे साझा करें!


1
आपको अपने प्रश्न का उत्तर देना चाहिए ताकि अन्य लोग आपके समाधान का पता लगा सकें।
डेविडकॉन्ड्री

26
मैं उस दिन के बारे में सपने देखता हूं जब OSX 10.11 आएगा और मुझे अपाचे, php और mysql को ठीक करने के लिए 2 घंटे नहीं बिताने होंगे। हो सकता है कि
वग्रांत में

10
केवल दो घंटे! हाहा
Xaver

8
यह सचमुच काम करता है। BTW, पहले दो आदेशों को एक में जोड़ा जा सकता है:sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
रॉकऑलिट

1
बहुत उपयोगी यह मेरे दो घंटे में कटौती करने के लिए फिर से काम कर रहे हैं! धन्यवाद दोस्तों।
निगेल बी। पेक

13

मैंने @Xavers निर्देशों का पालन ​​किया और कमांड निष्पादित करने की कोशिश कर रहा था

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

त्रुटि दी गई थी:

/Library/LaunchDaemons/com.mysql.mysql.plist: अमान्य संपत्ति सूची

एक मिनट के लिए मेरे सिर को खरोंच करने के बाद मैंने पाया कि शीर्ष पर DOCTYPE DTD घोषणा को हटाने से त्रुटि दूर हो गई और पुनः आरंभ करने पर mySQL सर्वर वास्तव में चल रहा है।

तो, मेरा XML ऐसा दिखता है:

<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <true/>
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/local/mysql/bin/mysqld_safe</string>
    <string>--user=mysql</string>
    </array>
  </dict>
</plist>

9

यदि आपने होमब्रे के साथ mysql स्थापित किया है , तो आप इसे टाइप करके ऑटोस्टार्ट करने के निर्देश प्राप्त कर सकते हैं brew info mysql

उदाहरण के लिए, मेरी मशीन पर आउटपुट है:

To have launchd start mysql at login:
  ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

2

/Library/LaunchDaemons/com.mysql.mysql.plistइसे बनाएं और इसे निम्न प्लिस्ट से सहेजें:

<!--?xml version="1.0" encoding="UTF-8"?-->

<plist version="1.0">
    <dict>
        <key>KeepAlive</key>
        <true>
            <key>Label</key>
            <string>com.mysql.mysqld</string>
            <key>ProgramArguments</key>
            <array>
                <string>/usr/local/mysql/bin/mysqld_safe</string>
                <string>--user=mysql</string>
            </array>
        </true>
    </dict>
</plist>

फिर नई बनी प्लिस्ट फाइल को लोड करें

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

काम नहीं करता है, यह अभी भी एक पुनरारंभ के बाद "बंद" कहता है :(
Xaver

apachectl startसर्वर शुरू करता है !? क्या वे संबंधित हैं?
Xaver

sudo launchctl load -w...एक त्रुटि फेंकता हैInvalid property list
Xaver

मैं संभावनाओं से बाहर हूँ, क्षमा करें
davidcondrey

1
ठीक है, वैसे भी धन्यवाद, मैं समाधान पोस्ट करूँगा अगर मैं एक पाने में सक्षम हूं
Xaver

2

यह आलेख अमान्य त्रुटि के साथ समस्या को हल करने में मेरी मदद करता है। नीचे दी गई सही प्लिस्ट

कैसे पता करें कि किस फाइल की कौन सी लाइन गलत है

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-   1.0.dtd"> 
<plist version="1.0"> 
<dict> 
<key>KeepAlive</key> 
<true/> 
<key>Label</key> 
<string>com.mysql.mysqld</string> 
<key>ProgramArguments</key> 
<array> 
<string>/usr/local/mysql/bin/mysqld_safe</string> 
<string>--user=mysql</string> 
</array> 
</dict> 
</plist>

1

अन्य प्रदान किए गए उत्तरों में से किसी ने भी मेरे MySQL सर्वर को ऑटो-स्टार्ट करने के लिए काम नहीं किया। मैंने MySQL 5.6 हैंडबुक से निर्देशों का पालन किया और यह अंत में फिर से ऑटो शुरू होता है! /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plistनिम्नलिखित सामग्री के साथ फ़ाइल बनाएँ :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
            <string>--port=3306</string>
        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

और फ़ाइल बनाने के बाद निम्नलिखित कमांड चलाएँ:

cd /Library/LaunchDaemons
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist

0

जब मैंने पहले दिए गए उत्तरों में सुझाए गए प्लिस्ट का उपयोग किया, तो मैंने अपने सिस्टम के लिए उपयोगकर्ता को _mysql में बदल दिया, लेकिन MySQL प्राथमिकता में "Stop MySQL सर्वर" बटन ने अब काम नहीं किया। KeepAliveकुंजी प्रक्रिया को फिर से शुरू करने के लिए तुरंत बाद बंद बटन दबाया जाता है का कारण होगा। मैंने RunAtLoadइसे रिबूट पर शुरू करने के लिए कुंजी का उपयोग किया , लेकिन काम जारी रखने के लिए फलक में बटन को अनुमति दें।

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>RunAtLoad</key>
    <true/>
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
    <string>/usr/local/mysql/bin/mysqld_safe</string>
    <string>--user=_mysql</string>
    </array>
  </dict>
</plist>

फिर, अन्य उत्तरों की तरह, भाग गया:

sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist

अब, MySQL पुनः आरंभ होता है, लेकिन सिस्टम प्राथमिकता में MySQL फलक अभी भी काम करता है। मैं El Capitan चला रहा हूं, 10.11.2

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