我正在运行OS X 10.11 El Capitan及其内置服务器堆栈(Apache 2.4.16,MySQL 5.6.26)。
我需要退出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
失败,错误为#34;错误!无法找到MySQL服务器PID文件!"尽管mysql正在运行且PID文件在/usr/local/mysql/data/mysqld.local.pid中是最新的。
以上是我在Stack Overflow上找到的所有建议的解决方案,但这些解决方案都不适用于El Capitan。在优胜美地,简单地杀死进程就足够了,但是随着El Capitan的更新,mysql会立即重新启动。
感谢。
答案 0 :(得分:23)
答案 1 :(得分:9)
在macOS Sierra
上,这对我有用
停止MySQL:
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
启动MySQL:
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
答案 2 :(得分:7)
在OS X El Capitan上,这对我有用:
sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
答案 3 :(得分:4)
我发现以下命令对我有用:
停止mysql:
sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist
启动mysql:
sudo launchctl load -F /Library/LaunchDaemons/com.mysql.mysql.plist
答案 4 :(得分:2)
在我的配置上,我发现了这个:
$ 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>
您需要:将KeepAlive之后的真实标记更改为false并按其他人的建议卸载守护程序。
在我的情况下是:
sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist && launchctl load /Library/LaunchDaemons/com.mysql.mysql.plist
一旦守护程序重新启动了新配置,当你从首选项中删除它时,它不会阻止mysql被关闭。
答案 5 :(得分:1)
根据Theory的回答,这对Mojave
仍然有效。
sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
对于每个amacrobert,如果您遇到mysqld
继续启动的问题,则最有可能是由于您在系统级安装了mysql
,默认情况下,它将在重新启动计算机。
在我的情况下,计算机重启后我感到困惑,为什么我的docker
mysql
容器抱怨已经分配了端口。经过不断的调试之后,我记得我在系统级别安装了mysql
,而且从未重启过计算机!
加油。
答案 6 :(得分:0)
如果您使用 homebrew 安装mysql,除非您使用以下brew命令,否则mysqld
将继续重启:
brew services list
获取要停止的服务的名称,然后运行以下命令:
brew services stop mysql@5.5
答案 7 :(得分:0)
这在Mac Sierra
上为我停止了mysql
sudo launchctl unload -F /Library/LaunchDaemons/homebrew.mxcl.mysql@5.7.plist