退出MySQL而不重新启动El Capitan

时间:2015-10-02 14:42:03

标签: mysql macos apache osx-elcapitan

我正在运行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重新启动。

从launchd

卸载mysqld

$ launchctl list | grep mysql不返回任何内容,因此$ launchctl unload

没有任何内容

停止mysql服务器

$ /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会立即重新启动。

感谢。

8 个答案:

答案 0 :(得分:23)

最终对我有用的是通过Mac System Preferences界面停止MySQL。没有它回来就杀死了mysql。

enter image description here

答案 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 list output

获取要停止的服务的名称,然后运行以下命令:

brew services stop mysql@5.5

答案 7 :(得分:0)

这在Mac Sierra上为我停止了mysql

sudo launchctl unload -F /Library/LaunchDaemons/homebrew.mxcl.mysql@5.7.plist