組み込みのサーバースタック(Apache 2.4.16、MySQL 5.6.26)を備えたOS X 10.11 ElCapitanを実行しています。
Mysqlを終了する必要がありますが、プロセスを強制終了するとすぐに再起動します。
これが私がこれまでに試したことです:
$ ps aux | grep mysql
PIDを取得するには
74 49484 1 0 10:23AM ?? 0:00.46 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid --port=3307
次に、$ Sudo kill -9 49484
はプロセスを強制終了しますが、すぐに高いPIDで再起動します。
$ launchctl list | grep mysql
は何も返さないため、$ launchctl unload
には何も返されません。
$ /usr/local/mysql/support-files/mysql.server stop
は「エラー!MySQLサーバーのPIDファイルが見つかりませんでした!」で失敗します。 mysqlが実行されており、PIDファイルが/usr/local/mysql/data/mysqld.local.pidで最新であるにもかかわらず。
上記はすべて、Stack Overflowで見つけた推奨ソリューションですが、ElCapitanではどれも機能しません。 Yosemiteでは、プロセスを強制終了するだけで十分でしたが、El Capitanの更新により、mysqlはすぐに再起動されます。
ありがとう。
オン macOS Sierra
、これは私のために働いた
MySQLを停止します:
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
MySQLを起動します:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
OS X El Capitanでは、これは私にとってはうまくいきました:
Sudo launchctl unload -F /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist
次のコマンドが機能することがわかりました。
Mysqlを停止するには:
Sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist
Mysqlを起動するには:
Sudo launchctl load -F /Library/LaunchDaemons/com.mysql.mysql.plist
私の設定で私はこれを見つけました:
$ cat /Library/LaunchDaemons/com.mysql.mysql.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true />
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
キープアライブ後のtrueタグをfalseに変更し、他の人が提案しているようにデーモンをアンロードする必要があります。私の場合、それは次のとおりでした:Sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist && launchctl load /Library/LaunchDaemons/com.mysql.mysql.plist
デーモンが新しい構成で再起動すると、設定からデーモンを強制終了したときにmysqlがシャットダウンされるのを防ぐことはできません。
homebrewを使用してmysqlをインストールした場合、次のbrewコマンドを使用しない限り、mysqld
は再起動し続けます。
brew services list
停止するサービスの名前を取得してから、次のコマンドを実行します。
brew services stop [email protected]
理論の答えによると、これはMojave
に対しても有効です。
Sudo launchctl unload -F /Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist
Amacrobertによると、mysqld
が起動し続けるというこの問題に直面している場合、これはシステムレベルにmysql
がインストールされていることが原因である可能性が高く、デフォルトでは、コンピューターの再起動時に自動的に起動します。
私の状況では、コンピューターを再起動した後、docker
mysql
コンテナーが既に割り当てられているポートについて不平を言った理由がわかりませんでした。継続的なデバッグの後、システムレベルでmysql
をインストールし、コンピューターを再起動しなかったことを覚えています。
乾杯。
これにより、Mac Sierra
でmysqlが停止しました
Sudo launchctl unload -F /Library/LaunchDaemons/[email protected]