我在Macbook上,在终端上我试图找出哪个应用程序占据了3306端口。我执行命令:
sudo lsof -i TCP:3306 我得到了输出:
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,我得到:
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)
发布于 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服务器来说可能是一个令人困惑的环境,因为有几种方法来获取和运行它,而且每个方法都有自己的管理流程的方法。
发布于 2019-02-07 14:10:14
这个过程似乎是由另一个用户 _mysql拥有的。要杀死它,试着去做
sudo -u _mysql -c kill -9 47730-u是为用户准备的-c用于命令备注
sudo kill -9 47730 (以root方式运行,但这有点过分)brew services stop mysql更优雅地关闭该服务。如果你用的是homebrewhttps://stackoverflow.com/questions/54575020
复制相似问题