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.