在 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)
这个过程会重复很多次。尝试 运行 mysql
或 mysqld
运行 进入 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它的自动启动。
我有一台 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)
这个过程会重复很多次。尝试 运行 mysql
或 mysqld
运行 进入 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它的自动启动。