記憶にない mysqld プロセスをアクティビティモニタで発見したら、brew services でチェックしよう
macOS のアクティビティモニタを眺めていて、mysqld プロセスが動いているのに気づきました。MySQL を使っている心当たりがない。何か変なことが起きているのかと少し不安になったので調べてみたところ、brew s […]
目次
macOS のアクティビティモニタを眺めていて、mysqld プロセスが動いているのに気づきました。MySQL を使っている心当たりがない。何か変なことが起きているのかと少し不安になったので調べてみたところ、brew services で正体がわかりました。手順をメモしておきます。
プロセスの正体を確認する
まずアクティビティモニタで mysqld を選択し、「情報を見る」で実行可能ファイルのパスを確認します。
パスが /opt/homebrew/Cellar/mysql/... の形式であれば、Homebrew 経由でインストールされた MySQL です。ターミナルでも同じことが確認できます。
ps aux | grep mysqld | grep -v grep
出力の中にパスが含まれているので、/opt/homebrew/Cellar/ 以下であれば Homebrew 製と判断できます。
brew services で状態を確認する
Homebrew 製とわかったら、次は brew services で管理状態を確認します。
# すべての Homebrew サービスを一覧表示
brew services list
# MySQL の詳細を表示
brew services info mysql
brew services info mysql の出力は次のようになります。
mysql (homebrew.mxcl.mysql)
Running: ✔
Loaded: ✔
Schedulable: ✘
User: username
PID: 3267
Loaded: ✔ は macOS の launchd に自動起動として登録済みであることを示します。このため、Mac を再起動しても mysqld は自動で立ち上がります。
ターミナルで ps -p [PID] -f を実行すると PPID(親プロセス ID)が表示されます。PPID が 1 の場合、launchd 管理のサービスとして起動していることを意味します。
停止・削除する
とりあえず停止したい場合
brew services stop mysql
このコマンド1つで「プロセスの停止」と「自動起動の無効化」を同時に行います。実行後に brew services info mysql で Running: ✘, Loaded: ✘ になっていれば完了です。
完全に削除したい場合
停止してからアンインストールします。データも不要であればディレクトリごと削除します。
# サービスを停止
brew services stop mysql
# MySQL 本体を削除
brew uninstall mysql
# データディレクトリを削除(注意: データが失われます)
rm -rf /opt/homebrew/var/mysql
データディレクトリの削除は不可逆なので、必要なデータがないことを確認してから実行してください。
なぜ自動起動されていたのか
記憶にないのに起動している場合、過去の開発環境セットアップが原因であることが多いです。Laravel Valet のセットアップスクリプトや、WordPress ローカル開発環境の構築手順に brew services start mysql が含まれていたケースがよくあります。
brew services start を実行すると、launchd への自動起動登録も同時に行われます。「インストールしたとき、何かのチュートリアルに従っただけ」という場合でも、気づかずに自動起動が設定されていることがあります。
brew services list を定期的に確認しておくと、気づかないまま動き続けているサービスが減らせます。
まとめ
今回の流れをまとめると、アクティビティモニタでパスを確認して Homebrew 製か判別 → brew services info mysql で管理状態を確認 → 不要なら brew services stop mysql で停止、の3ステップです。