Никога не използвайте sudo
с команда brew
. Това ще разруши собствеността върху свързаните файлове. Изпълнява се brew
тъй като root не се поддържа. (Говоря за brew
, а не mysqld
)
Предупреждения от -sh38w>code. варя
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
}
Решения
-
Деактивирайте услугата и премахнете 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
-
Поправете собствеността върху файлове, свързани с 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
с root на Linux, но macOS не е Linux.
Homebrew управлява услуги с помощта на launchd
, което е вид systemd
алтернатива на macOS. launchd
стартира процес на преден план и го управлява вместо вас, точно като този systemd
прави.
brew услуги стартират/спират mysql
ще задоволи нуждите ви. Той създава стартиран файл ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
, стартира mysqld
с него (изпълняван от текущ потребител).
/usr/local/mysql/support-files/mysql.server
е шел скрипт, предоставен от MySQL, за да ви помогне да стартирате mysqld
. Не се препоръчва директното му използване,освен ако изграждате MySQL от източник вън Домашно пиво. Ако използвате Homebrew, просто се придържайте към услугите за варене
. Или го кажете по друг начин, ако използвате Homebrew, трябва да правите нещата по начина на Homebrew.