在 MacOS 上杀死 mysqld 进程的父进程

Kill parent of mysqld process on MacOS

我有一台 Docker 机器,我希望它能够使用端口 3306。但该端口已被使用。

我不记得在主机上安装了 MySQL,但这些年来我做了很多愚蠢的事情,所以我很有可能做到了。我运行brew services list看是不是brew服务阻塞了端口。没有。没有列出任何内容。

所以我 运行 sudo lsof -i tcp:3306 得到以下内容:

COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  71046 _mysql   28u  IPv6 0xbdab224a8a9b989f      0t0  TCP *:mysql (LISTEN)

好的。杀人很简单吧?我再次 运行 sudo kill -QUIT 71046 和 运行 sudo lsof -i tcp:3306。现在有一个不同的进程在同一个端口上侦听:

COMMAND   PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mysqld  71207 _mysql   28u  IPv6 0xbdab224a8a9ba41f      0t0  TCP *:mysql (LISTEN)

这个过程会重复很多次。尝试 运行 mysqlmysqld 运行 进入 command not found 错误。

所以我的问题是:我必须使用什么命令才能运行 永久停止 mysqld 无限重生?

(如果你能帮我去掉机器启动时自动启动的设置,加分。)

我在上面给出的评论引导您找到答案,但这里有一个更完整的解释以供未来的读者使用:

我推断你使用的是 MacOS,因为你提到 brew。 MacOS 很奇怪,因为 运行 MySQL 服务器有多种方式。 Brew 是其中之一,但来自 MySQL.com 的官方下载使用本机软件包安装程序,并创建启动守护程序和系统首选项窗格来管理启动守护程序。

https://dev.mysql.com/doc/refman/5.7/en/osx-installation-prefpane.html

您可以使用首选项窗格来启动和停止启动守护程序,或者enable/disable它的自动启动。