退出 MySQL 而不在 El Capitan 上重新启动
Quit MySQL without it restarting on El Capitan
我是 运行 OS X 10.11 El Capitan 及其内置服务器堆栈(Apache 2.4.16,MySQL 5.6.26)。
我需要退出 mysql,但终止进程会立即重新启动它。
这是我到目前为止尝试过的方法:
终止进程
$ ps aux | grep mysql
获取 PID returns
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 重新启动。
正在从 launchdmysqld 中卸载
$ launchctl list | grep mysql
returns什么都没有,所以$ launchctl unload
也没什么
正在停止 mysql 服务器
$ /usr/local/mysql/support-files/mysql.server stop
失败并显示 "ERROR! MySQL server PID file could not be found!" 尽管 mysql 是 运行 并且 PID 文件在 /usr/local/mysql/data/mysqld 中是最新的。local.pid.
以上是我在 Stack Overflow 上找到的所有建议解决方案,none 其中对我在 El Capitan 上有效。在 Yosemite 上,简单地终止进程就足够了,但随着 El Capitan 更新,mysql 会立即重新启动。
谢谢。
最终对我有用的是通过 Mac 系统偏好设置界面停止 MySQL。那杀死了 mysql 而没有回来。
我发现以下命令对我有用:
停止 mysql:
sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist
开始 mysql:
sudo launchctl load -F /Library/LaunchDaemons/com.mysql.mysql.plist
在 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
在我的配置中我发现了这个:
$ 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 之后的 true 标记更改为 false 并按照其他人的建议卸载守护进程。
在我的例子中是:
sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist && launchctl load /Library/LaunchDaemons/com.mysql.mysql.plist
一旦守护进程将使用新配置重新启动,当您从首选项中将其杀死时,它不会阻止 mysql 关闭。
根据 Theory 的回答,这对 Mojave
仍然有效。
sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Per amacrobert,如果您遇到 mysqld
继续启动的问题,这很可能是因为您在系统级别安装了 mysql
,默认情况下,它会自动启动在计算机重新启动。
在我的情况下,我在计算机重新启动后感到困惑,为什么我的 docker
mysql
容器抱怨已经分配的端口。经过不断的调试,我记得我在系统级别安装了mysql
,并没有重新启动我的电脑!
加油。
如果您使用 homebrew 安装 mysql,mysqld
将继续重启,除非您使用以下 brew 命令:
brew services list
获取要停止的服务名称,然后运行执行以下命令:
brew services stop mysql@5.5
这在 Mac Sierra
为我停止了 mysql
sudo launchctl unload -F /Library/LaunchDaemons/homebrew.mxcl.mysql@5.7.plist
我是 运行 OS X 10.11 El Capitan 及其内置服务器堆栈(Apache 2.4.16,MySQL 5.6.26)。
我需要退出 mysql,但终止进程会立即重新启动它。
这是我到目前为止尝试过的方法:
终止进程
$ ps aux | grep mysql
获取 PID returns
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 重新启动。
正在从 launchdmysqld 中卸载
$ launchctl list | grep mysql
returns什么都没有,所以$ launchctl unload
正在停止 mysql 服务器
$ /usr/local/mysql/support-files/mysql.server stop
失败并显示 "ERROR! MySQL server PID file could not be found!" 尽管 mysql 是 运行 并且 PID 文件在 /usr/local/mysql/data/mysqld 中是最新的。local.pid.
以上是我在 Stack Overflow 上找到的所有建议解决方案,none 其中对我在 El Capitan 上有效。在 Yosemite 上,简单地终止进程就足够了,但随着 El Capitan 更新,mysql 会立即重新启动。
谢谢。
最终对我有用的是通过 Mac 系统偏好设置界面停止 MySQL。那杀死了 mysql 而没有回来。
我发现以下命令对我有用:
停止 mysql:
sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist
开始 mysql:
sudo launchctl load -F /Library/LaunchDaemons/com.mysql.mysql.plist
在 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
在我的配置中我发现了这个:
$ 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 之后的 true 标记更改为 false 并按照其他人的建议卸载守护进程。
在我的例子中是:
sudo launchctl unload -F /Library/LaunchDaemons/com.mysql.mysql.plist && launchctl load /Library/LaunchDaemons/com.mysql.mysql.plist
一旦守护进程将使用新配置重新启动,当您从首选项中将其杀死时,它不会阻止 mysql 关闭。
根据 Theory 的回答,这对 Mojave
仍然有效。
sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Per amacrobert,如果您遇到 mysqld
继续启动的问题,这很可能是因为您在系统级别安装了 mysql
,默认情况下,它会自动启动在计算机重新启动。
在我的情况下,我在计算机重新启动后感到困惑,为什么我的 docker
mysql
容器抱怨已经分配的端口。经过不断的调试,我记得我在系统级别安装了mysql
,并没有重新启动我的电脑!
加油。
如果您使用 homebrew 安装 mysql,mysqld
将继续重启,除非您使用以下 brew 命令:
brew services list
获取要停止的服务名称,然后运行执行以下命令:
brew services stop mysql@5.5
这在 Mac Sierra
sudo launchctl unload -F /Library/LaunchDaemons/homebrew.mxcl.mysql@5.7.plist