【问题标题】:Port 3306 busy but no process using it端口 3306 繁忙但没有进程使用它
【发布时间】:2017-05-30 20:16:06
【问题描述】:

我开始使用 docker 和 docker-compose,发现 mysql 容器有问题。我正在使用官方的 mysql:latest 图片。当我运行 docker-compose up 时出现此错误:

Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use

为了确保我的 docker-compose.yml 没有问题,我测试了 3307 端口,一切正常。但是我想用标准的3306。

当然,我杀死了我的本地 mysql 守护程序,但错误仍然存​​在。所以我跑了

netstat -lnp | grep 3306

这就是我发现的:

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -

我也执行了lsof -i TCP:3306,但没有得到任何结果。

如何释放 3306 端口?谢谢!

【问题讨论】:

  • 你看到任何 mysql 了吗? ps aux|grep mysql
  • 您是否在主机上使用 sudo 运行 netstat?
  • 我以 root 身份登录控制台并显示:mysqld 未正确终止。- 即使我使用 sudo 终止进程,它也重新启动,但仅适用于 root!我不知道为什么会这样!但是,以 root 身份(不是使用 sudo)杀死它可以正常工作。谢谢你们的帮助:-)

标签: mysql unix docker process console


【解决方案1】:

好的,让我们用 Sudo 试试

sudo netstat -lpn |grep :3306

你会看到那个端口的proceesID,用这些执行

kill -9 PID //PID processID used by 3306 Port

这里的-9是强制杀戮,希望对你有帮助

【讨论】:

    猜你喜欢
    • 2011-09-02
    • 1970-01-01
    • 2013-02-08
    • 2014-06-17
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    • 2012-09-06
    相关资源
    最近更新 更多