कभी भी sudo का उपयोग न करें कमांड के साथ brew . यह संबंधित फाइलों के स्वामित्व को बर्बाद कर देगा। चल रहा है brew क्योंकि रूट समर्थित नहीं है। (मैं बात कर रहा हूं brew , नहीं mysqld )
check-run-command-as-root() {
...
odie <<EOS
Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.
EOS
}
समाधान
-
सेवा को अक्षम करें और लॉन्चडेमन को हटा दें।
# stop and unload the launchdaemon sudo launchctl unload -w /Library/LaunchDaemons/homebrew.mxcl.mysql.plist # remove the lauchdaemon file sudo rm -f /Library/LaunchDaemons/homebrew.mxcl.mysql.plist sudo rm -f /tmp/mysql.sock /tmp/mysqlx.sock -
Homebrew संबंधित फ़ाइलों का स्वामित्व ठीक करें
# For x86 Mac sudo chown -R "$(whoami):admin" /usr/local/* # For M1 Mac sudo chown -R "$(whoami):admin" /opt/homebrew/* # it will take some time -
MySQL सेवा को पुन:सक्षम करें।
# DO NOT USE "sudo brew" brew services start mysql
अपडेट करें :
ऐसा लगता है कि आप में से कुछ लोग Homebrew से परिचित नहीं हैं। मैं समझाता हूँ कि Homebrew यहाँ सेवाओं का प्रबंधन कैसे करता है।
mysqld पोर्ट पर सुनता है 3306 डिफ़ॉल्ट रूप से, जो एक विशेषाधिकार प्राप्त पोर्ट नहीं है। इसलिए mysqld शुरू करने की कोई आवश्यकता नहीं है जड़ के साथ। systemd प्रारंभ होता है mysqld Linux पर रूट के साथ, लेकिन macOS Linux नहीं है।
Homebrew launchd . की सहायता से सेवाओं का प्रबंधन करता है , जो एक तरह का systemd है macOS पर वैकल्पिक। launchd एक अग्रभूमि प्रक्रिया शुरू करता है और इसे आपके लिए प्रबंधित करता है, ठीक उसी तरह जैसे systemd करता है।
brew services start/stop mysql आपकी जरूरत को पूरा करेगा। यह एक लॉन्च फ़ाइल बनाता है ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , प्रारंभ होता है mysqld इसके साथ (वर्तमान उपयोगकर्ता द्वारा संचालित)।
/usr/local/mysql/support-files/mysql.server mysqld start शुरू करने में आपकी मदद करने के लिए MySQL द्वारा लाई गई एक शेल स्क्रिप्ट है . इसका सीधे उपयोग करने की अनुशंसा नहीं की जाती है जब तक आप MySQL को स्रोत बाहर . से बनाते हैं होमब्रू। यदि आप Homebrew का उपयोग कर रहे हैं, तो बस brew services . के साथ बने रहें . या इसे दूसरे तरीके से कहें, अगर आप Homebrew का उपयोग कर रहे हैं, तो आपको Homebrew तरीके से काम करना चाहिए।