Nunca use
sudo com o comando brew . Isso arruinará a propriedade dos arquivos relacionados. Executando brew como root não é suportado. (Estou falando de brew , não mysqld ) Citação do documento Homebrew
Avisos do código-fonte de
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
}
Soluções
-
Desative o serviço e remova o 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 -
Corrigir a propriedade de arquivos relacionados ao 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 -
Reative o serviço MySQL.
# DO NOT USE "sudo brew" brew services start mysql
Atualizar :
Parece que alguns de vocês não estão familiarizados com o Homebrew. Vou explicar como o Homebrew gerencia os serviços aqui.
mysqld escuta na porta 3306 por padrão, que não é uma porta privilegiada. Portanto, não há necessidade de iniciar o mysqld com raiz. systemd inicia mysqld com root no Linux, mas o macOS não é Linux. Homebrew gerencia serviços com a ajuda de
launchd , que é uma espécie de systemd alternativa no macOS. launchd inicia um processo em primeiro plano e o gerencia para você, assim como systemd faz. brew services start/stop mysql será suficiente para sua necessidade. Ele cria um arquivo launchd ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist , inicia o mysqld com ele (executado pelo usuário atual). /usr/local/mysql/support-files/mysql.server é um script de shell trazido pelo MySQL para ajudá-lo a iniciar o mysqld . Não é recomendado usá-lo diretamente a menos que você constrói o MySQL da fonte fora Homebrew. Se você estiver usando o Homebrew, fique com os brew services . Ou diga de outra forma, se você estiver usando o Homebrew, você deve fazer as coisas no modo Homebrew.