मैं स्टार्टअप पर MySQL सर्वर को ऑटो स्टार्ट करना चाहूंगा। यह मावेरिक्स में संभव था लेकिन लगता है कि योसेमाइट पर काम नहीं किया जा रहा है।
संपादित करें : लगता है कि यह El Capitan के साथ भी काम करता है
जवाबों:
@ डीसीसी बहुत करीब थी। इस तरह से 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
यदि आपके पास कोई अतिरिक्त है तो कृपया नीचे साझा करें!
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
मैंने @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>
यदि आपने होमब्रे के साथ 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
/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
apachectl start
सर्वर शुरू करता है !? क्या वे संबंधित हैं?
sudo launchctl load -w...
एक त्रुटि फेंकता हैInvalid property list
यह आलेख अमान्य त्रुटि के साथ समस्या को हल करने में मेरी मदद करता है। नीचे दी गई सही प्लिस्ट
कैसे पता करें कि किस फाइल की कौन सी लाइन गलत है
<?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>
अन्य प्रदान किए गए उत्तरों में से किसी ने भी मेरे 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
जब मैंने पहले दिए गए उत्तरों में सुझाए गए प्लिस्ट का उपयोग किया, तो मैंने अपने सिस्टम के लिए उपयोगकर्ता को _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