通常情况下:lsof -i:#{port}
就可以找到对应的进程的pid
kill -9 #{pid} 直接终结
kill -15 #{pid} 等待正在进行的任务完成再终结

本次纪要

问题出现:

当我想要使用docker启动mysql的时候报错:Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use ;
甚至于使用socket来启动3306的时候也显示该端口被占用;

解决思路:

1、此时我使用lsof找不到进程信息
2、但是使用netstat可以找到,但是mac不支持-p又看不到 进程id-pid
在这里插入图片描述
3、此时就比较懵逼了,说明应该3306有进程在占用
4、然后此时sudo lsof - i:3306
在这里插入图片描述
此时就发现lsof应该是涉及到用户权限的,sudo可以获取所有用户的,不加则是当前用户;

后来发现根本原因是我的mac电脑起了一个mysql,所有3306被占用了只不过忘记这茬子了;

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部