首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法用“<pid> -9”杀死mysql进程

无法用“<pid> -9”杀死mysql进程
EN

Stack Overflow用户
提问于 2019-02-07 13:57:59
回答 2查看 2.3K关注 0票数 1

我在Macbook上,在终端上我试图找出哪个应用程序占据了3306端口。我执行命令:

代码语言:javascript
复制
sudo lsof -i TCP:3306 

我得到了输出:

代码语言:javascript
复制
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  47730 _mysql   19u  IPv6 0x736b0ff006adfb97      0t0  TCP *:mysql (LISTEN)

然后,我用sudo kill -9 47730来终止这个过程。它执行时没有错误。

但是,我再次运行了sudo lsof -i TCP:3306,我得到:

代码语言:javascript
复制
COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  47759 _mysql   19u  IPv6 0x736b0ff006ae0cd7      0t0  TCP *:mysql (LISTEN)

mysql进程又出现了不同的PID,为什么?如何在我的Macbook上永久地杀死MySQL进程?

(mysql版本8.0.11)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-07 14:17:01

读取https://dev.mysql.com/doc/refman/8.0/en/osx-installation-launchd.html

MySQL服务器在MacOS上配置为启动守护进程,启用"KeepAlive“选项。这意味着如果它停止了,例如,当您使用kill -9时,MacOS将自动重新启动它。

您应该使用System小部件(显示在我链接到的手册页面上)或使用launchctl来停止它。

如果使用MySQL或其他方式安装了brew服务器,则launchctl可能无法对其进行管理。

例如,有些人使用supervisord来运行MySQL服务器,在这种情况下,您可以使用supervisorctl stop mysql停止它。

当使用运行MySQL服务器的非launchctl方法时,它可能正在运行安全,这是一个脚本,如果它被杀死或崩溃,它会自动重新启动mysqld。这就是你必须正确关闭mysqld_safe的原因。

当我在我的Macbook上运行MySQL服务器的测试实例时,我用布布洛尔启动它们,这会启动一个mysqld_safe进程。

MacOS对于MySQL服务器来说可能是一个令人困惑的环境,因为有几种方法来获取和运行它,而且每个方法都有自己的管理流程的方法。

票数 3
EN

Stack Overflow用户

发布于 2019-02-07 14:10:14

这个过程似乎是由另一个用户 _mysql拥有的。要杀死它,试着去做

代码语言:javascript
复制
sudo -u _mysql -c kill -9 47730
  • -u是为用户准备的
  • -c用于命令

备注

  • 如果这样做不起作用,您可以始终尝试sudo kill -9 47730 (以root方式运行,但这有点过分)
  • 而且,由于您在Mac上,您可以尝试brew services stop mysql更优雅地关闭该服务。如果你用的是homebrew
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54575020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档