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の方法で行う必要があります。