Använd aldrig sudo med kommandot brew . Det kommer att förstöra äganderätten till relaterade filer. Kör brew eftersom root inte stöds. (Jag pratar om brew , inte mysqld )
Varningar från källans kodL381>-kodL381 brygga
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
}
Lösningar
-
Inaktivera tjänsten och ta bort launchdaemon.
# 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 -
Åtgärda ägandet av hembryggrelaterade filer
# 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 -
Återaktivera MySQL-tjänsten.
# DO NOT USE "sudo brew" brew services start mysql
Uppdatera :
Det verkar som att några av er inte är bekanta med Homebrew. Jag ska förklara hur Homebrew hanterar tjänster här.
mysqld lyssnar på port 3306 som standard, vilket inte är en privilegierad port. Så det finns ingen anledning att starta mysqld med rot. systemd startar mysqld med root på Linux, men macOS är inte Linux.
Homebrew hanterar tjänster med hjälp av launchd , som är en typ av systemd alternativ på macOS. lanserad startar en förgrundsprocess och hanterar den åt dig, precis som vad systemd gör.
bryggtjänster start/stopp mysql kommer att räcka till ditt behov. Den skapar en lanserad fil ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , startar mysqld med den (körs av nuvarande användare).
/usr/local/mysql/support-files/mysql.server är ett skalskript från MySQL för att hjälpa dig att starta mysqld . Att använda det direkt rekommenderas inte om inte du bygger MySQL från källan utanför Hembryggt. Om du använder Homebrew, håll dig bara till bryggtjänster . Eller säg det på ett annat sätt, om du använder Homebrew bör du göra saker på Homebrew-sättet.