Gebruik nooit sudo
met commando brew
. Het zal het eigendom van gerelateerde bestanden verpesten. brew
uitvoeren omdat root niet wordt ondersteund. (Ik heb het over brew
, niet mysqld
)
Waarschuwingen van de broncode van brew
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
}
Oplossingen
-
Schakel de service uit en verwijder de 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
-
Eigendom van homebrew-gerelateerde bestanden herstellen
# 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
-
Schakel de MySQL-service opnieuw in.
# DO NOT USE "sudo brew" brew services start mysql
Bijwerken :
Het lijkt erop dat sommigen van jullie niet bekend zijn met Homebrew. Ik zal hier uitleggen hoe Homebrew services beheert.
mysqld
luistert op poort 3306
standaard, wat geen bevoorrechte poort is. Het is dus niet nodig om mysqld
te starten met wortel. systemd
start mysqld
met root op Linux, maar macOS is geen Linux.
Homebrew beheert diensten met behulp van launchd
, wat een soort systemd
. is alternatief op macOS. launchd
start een voorgrondproces en beheert het voor u, net zoals systemd
doet.
brew services start/stop mysql
zal voldoende zijn voor uw behoefte. Het creëert een launchd-bestand ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
, start mysqld
ermee (gerund door huidige gebruiker).
/usr/local/mysql/support-files/mysql.server
is een shellscript van MySQL om u te helpen mysqld
te starten . Direct gebruik wordt niet aanbevolen tenzij je bouwt MySQL vanaf de bron buiten Thuisbrouwsel. Als je Homebrew gebruikt, blijf dan gewoon bij brew services
. Of zeg het op een andere manier, als je Homebrew gebruikt, moet je dingen op de Homebrew-manier doen.