【问题标题】:Can't stop Mysql 5.1 on Mac OSX 10.6无法在 Mac OSX 10.6 上停止 Mysql 5.1
【发布时间】:2011-10-05 13:38:48
【问题描述】:

我正在尝试在 MacOSX 10.6 上停止 Mysql v5.1,以便升级到 Mysql v5.5。

我相信我在几个月前从源代码安装了 v5.1。我已经尝试了这里列出的所有方法:How do you stop MySQL on a Mac OS install?

但是,当我执行“mysqladmin shutdown”时,操作系统似乎只是产生了另一个 mysql 进程:

$ sudo mysqladmin shutdown
$ ps -Af | grep mysql
   74 53283     1   0   0:00.01 ??         0:00.01 /bin/sh /usr/local/mysql/bin/mysqld_safe
   74 53324 53283   0   0:00.01 ??         0:00.03 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --log-error=/usr/local/mysql/var/Al.local.err --pid-file=/usr/local/mysql/var/Al.local.pid
  501 53343 52577   0   0:00.00 ttys003    0:00.00 grep mysql

如果我试图终止进程,也会发生同样的事情。 (但是,如果我尝试杀死 mysqld_safe 进程,我会得到“没有这样的进程”)

我查看了 /Library/StartupItems 并没有 MySQL 目录。我知道我没有使用 MacPorts 来安装 Mysql。

我在这里缺少什么?我该如何杀死这只野兽?

【问题讨论】:

  • 你的 mysqld_safe 的父 PID 是 1,这意味着它是 init。因此,您的 mysql 正在作为系统启动的一部分启动。我对 OSX 一点也不熟悉,但是在 startupitems 文件夹顶部是否有 /etc/init.d 或类似文件?
  • 贾斯汀 - 即使是 kill -9 也不会杀死它:$ sudo kill -9 53283 53324 密码:$ ps -Af | grep mysql 74 54610 1 0 0:00.01 ?? 0:00.02 /bin/sh /usr/local/mysql/bin/mysqld_safe 74 54672 54610 0 0:00.08 ?? 0:00.10 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --log-error=/usr/local/mysql/var/ Al.local.err --pid-file=/usr/local/mysql/var/Al.local.pid 501 54674 52577 0 0:00.00 ttys003 0:00.00 grep mysql
  • Marc B - 你提供了提示!事实证明,有一个文件:/Library/LaunchDaemons/com.mysql.mysqld.plist 阻止了 mysql 关闭。一旦我删除它并重新启动mysql就消失了。这篇 stackoverflow 帖子有更多详细信息:stackoverflow.com/questions/5555589/…
  • Marc B - 如果您发布答案,我会检查它。感谢您的敏锐眼光!

标签: mysql macos shutdown


【解决方案1】:

@Sly——你的修复效果很好。但是,如果您不想重新启动,我发现(在man launchctl)您也可以通过发出以下命令使其停止重新启动 mysql:

sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

PS:您的 com.mysql.mysqld.plist 文件可能位于 /Library/LaunchDaemons 或 /Library/LaunchAgents 或 ~/Library/LaunchDaemons 或 ~/Library/LaunchAgents 中

【讨论】:

  • 我遇到了类似的问题(尽管没有出现任何进程),但这有帮助。我认为这与重新安装期间不卸载有关。
  • 在我的情况下,路径略有不同:/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
【解决方案2】:

我有类似的安装,但没有启动器守护程序。我在终端中运行 mysqld。我发现关闭它的唯一方法是向 mysqld 进程发送信号 11。

【讨论】:

  • 这就像一个魅力,只需在终端上输入“kill -11 ”然后按回车就可以节省你的一天;)
【解决方案3】:

使用launchctl启动MySQL 借助launchctrl卸载它

  launchctl interfaces with launchd to load, unload daemons/agents and generally control launchd

尝试卸载应该可以解决问题

sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist

如果 mysql 没有使用 launchctl 工具加载,那么 unload 将不会停止 mysql,那么在这种情况下,常规的 sudo mysqladmin shutdown will work

【讨论】:

    猜你喜欢
    • 2012-02-29
    • 2012-04-09
    • 2011-07-01
    • 1970-01-01
    • 2012-03-18
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多