sudoは絶対に使用しないでください コマンドbrewを使用 。関連ファイルの所有権を台無しにします。 brewを実行しています ルートはサポートされていないため。 (私はbrewについて話している 、mysqldではありません )
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 -
自作関連ファイルの所有権を修正する
# 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がサービスを管理する方法について説明します。
mysqld ポート3306でリッスンします デフォルトでは、これは特権ポートではありません。したがって、mysqldを開始する必要はありません。 ルート付き。 systemd mysqldを開始します Linuxではrootですが、macOSはLinuxではありません。
Homebrewはlaunchdの助けを借りてサービスを管理します 、これは一種のsystemd macOSの代替。 launchd systemdと同じように、フォアグラウンドプロセスを開始し、それを管理します
brew services start/stop mysql あなたの必要性で十分でしょう。起動ファイル~/Library/LaunchAgents/homebrew.mxcl.mysql.plistを作成します 、mysqldを開始します それを使って(現在のユーザーが実行します)。
/usr/local/mysql/support-files/mysql.server mysqldの起動を支援するためにMySQLによってもたらされたシェルスクリプトです。 。 を除いて、直接使用することはお勧めしません 外部のソースからMySQLをビルドします 自作。 Homebrewを使用している場合は、brew servicesを使用してください。 。または、別の言い方をすれば、Homebrewを使用している場合は、Homebrewの方法で行う必要があります。