无法启动 MySQL,端口 3306 忙
Posted
技术标签:
【中文标题】无法启动 MySQL,端口 3306 忙【英文标题】:Can't start MySQL, port 3306 busy 【发布时间】:2011-09-02 10:39:52 【问题描述】:我正在尝试从 XAMPP(在 Windows Vista 下)启动 mysql,但它说端口 3306 正忙。
检查哪个应用程序正在使用该端口以及如何释放它的最佳方法是什么?
【问题讨论】:
你肯定是指 WAMP 吧? XAMPP 适用于 linux。 不,我使用的是 XAMPP,在 Vista 上运行良好。你认为我应该切换到 WAMP 吗? 我的错,我以为*ampp*
系列的第一个字母定义为操作系统,但显然我错了:)。
大声笑,删除了 xampp,安装了 wamp... 似乎现在可以工作了!
【参考方案1】:
在命令外壳中,运行:
netstat -b -p TCP
或
netstat -an | grep -i listen | grep -E 3306
第一个命令将输出一个列表,您需要查看第二列中显示localhost:3306
的行。下面是使用端口的应用程序名称。
辅助命令将找到您正在寻找的确切端口,看起来像这样:
<example-name>:user <example-name>$ netstat -an | grep -i listen | grep -E 3306
tcp46 0 0 *.3306 *.* LISTEN
【讨论】:
输出一个很长的列表,但其中没有 localhost 或 3306... :/ 它可能会打印您机器的名称而不是localhost
。但是,带有:3306
的行应该会出现在某处。【参考方案2】:
我遇到了同样的问题,在这件事上卡了一天,我在任何地方都找不到完美的答案。 所以我自己试了一下,它奏效了。此解决方案适用于 Windows 用户。我使用的是 Windows 7。
我的 xampp 控制面板显示端口 3306 正忙并且正在被某个文件(指定名称)使用的错误..说“filename.de”。
现在按照以下步骤操作:
-
按 Ctrl+Alt+Del 并打开任务管理器。
打开“进程”列表并检查进程列表下的“显示所有进程”。如果您没有看到任何此类选项,请不要担心!因为有时需要管理员权限才能显示某些进程。
现在,当您单击“显示所有进程”按钮时,将显示所有进程。
现在,切换到任务管理器中的“服务”选项卡,将显示服务列表。现在查找名为“filename.de”的服务
找到该服务后,“右键单击”,然后单击选项..转到进程。
您将被重定向到“进程”选项卡,重点是与该服务对应的进程。 “右键单击”,然后单击“结束进程树”。
现在,问题已解决!但是当您重新启动 PC 时可能必须再次执行相同的操作。因此,最好让您的电脑处于睡眠模式。
否则,要永久解决此问题,请打开“msconfig”并从服务列表中取消选中该特定进程,然后单击应用。并且您可以重新启动系统。
【讨论】:
【参考方案3】:只需打开任务管理器并杀死 MySql 服务。
【讨论】:
【参考方案4】:我遇到了这个问题(我使用 MAMP 时略有不同)
我发现这个问题是由于安装了 MySQL Workbench,MySQL Workbench 在启动时启动了 mySQL 服务,这反过来又阻止了 MAMP 能够使用该端口。
为了解决这个问题,我有两个选择,
-
卸载 MySQL Workbench
打开Task,点击服务选项卡,杀死当前的MySQL服务
这随后允许 MAMP 使用端口 3306
【讨论】:
【参考方案5】:在我的情况下,它是从端口 3306 启动的 javaw.exe。如果我在 Windows 10 中使用单个用户登录,则此 exe 不会导致问题。但如果我有多个登录,它会为每个用户启动此 exe用户并阻止 MySQL 在 3306 端口上启动。
转到任务管理器并为其他用户杀死此 exe 解决了问题,MySQl 可以启动。
【讨论】:
【参考方案6】:如果 mysql 没有在 xampp 中启动,则可能是端口冲突问题。 Mysql 默认在 3306 端口上运行。您需要检查是否有其他应用程序占用了该端口。使用以下命令检查应用程序占用端口
Linux: netstat -tulpn | grep 3306
Window: netstat -a -b
Mac: lsof -nP -i4TCP:3306
如果您发现某个应用程序占用了该端口,请停止该应用程序并重新启动 xampp。或者,您可以转到 php.ini 文件或单击 xampp for mysql 中的配置,并将 mysql 端口更改为 3307
【讨论】:
【参考方案7】:对于这个问题,Windows上更简单的方法是:-
-
进入任务管理器
转到服务
会有一个名为MySQl80的服务,右键点击它然后选择
“停止”
再次尝试在 XAMPP 服务器上启动 MySQl 模块
【讨论】:
【参考方案8】:正如@Segun Emmanuel 所说,运行以下命令:
netstat -a -b
您将获得使用不同端口的应用程序列表。按Ctrl + F
并写入 3306 以找出哪个应用程序正在使用 PORT 3306。
之后,通过搜索栏或按CTRL + ALT + DEL
进入任务管理器。然后在后台进程下,找到mysqld.exe
,右击它,你会找到一个关闭它的选项,即“End Task
”。
然后转到您的 Xampp 控制面板并启动 MySQL 服务。
【讨论】:
这就像一个魅力!多谢。我试图通过 MySQL 安装程序安装 MySQL 数据库并在 Windows 10 上遇到此问题。我不得不以管理员模式打开 CMD 并执行给定的命令,找到仍在 3306 上的罪魁祸首并按照你的建议杀死了他.由于 3306 端口已在使用问题,MySQL MSI 安装程序被阻止。一旦我从“服务”选项卡列表中杀死 mysqld.exe 进程,它就得到了解决。是的! +1 谢谢。【参考方案9】:Windows 图标 -> 打开 cmd.exe。
输入netstat -a -b
。
找出什么在使用它。在我的情况下是这样的:
所以,我去了任务管理器。没有这样的过程。我去了服务并禁用了这两个:
现在一切正常。
【讨论】:
【参考方案10】:如果您在端口 3306
上找不到任何应用程序或进程侦听,您可能需要检查您的网络适配器。
禁用不使用的适配器。
还要注意 Hyper-V 生成的网络适配器,如果不需要,请禁用它。有时它可以保留一些端口,像netstat
这样的命令将无法找到它
【讨论】:
【参考方案11】:我已经为这个错误困扰了好几个小时。很长一段时间后,我试图从 XAMPP 运行 MySQL。它给出了错误,类似于您的错误,它说端口 3306 正在使用中。如果你:
在 Windows 10 上运行 正在避免将 MySQL 的端口号从 3306 更改 看不到任何使用来自netstat
的3306端口的程序
重新安装并删除所有内容,但仍然出现相同的错误
正在启用和使用 Hyper-V
所有其他解决方案均无效
这是对我有用的解决方案:
到任务栏最右边右击连接图标,点击Open Network & Internet settings
点击Change adapter options
右键单击并禁用与 Hyper-V 相关的所有内容
我现在再次运行 MySQL。
【讨论】:
【参考方案12】:如果你安装了两次mysql,就会出现这个错误。 mysql 默认使用 3306 端口。如果你安装了两次,那么你的端口号 3306 已经有一个 mysql。所以你必须更改你的端口。
如果您使用的是 xampp,那么您可以轻松更改您的端口。更改端口的步骤: 第 1 步:以管理员身份打开您的 xampp。 第 2 步:单击 xampp 右上角的“配置”。 第三步:点击“服务和端口设置”,然后将mysql的主端口从3306更改为3307,然后点击保存。 第4步:然后点击mysql前面的'config'并打开'my.ini'文件,这将是一个文本文件。 第 5 步:现在在文本文件中的任何位置,您都会看到提及为 3306 的端口号将其更改为 3307,然后保存文件。
再次执行此操作后,启动您的 mysql 服务器,它将开始在端口 3307 上运行。
这对我有用,我希望它对遇到同样问题的其他人也有用。
【讨论】:
以上是关于无法启动 MySQL,端口 3306 忙的主要内容,如果未能解决你的问题,请参考以下文章
如何修复:MySQL 无法启动:错误“另一个 mysqld 服务器在端口:3306 上运行?” - 检查端口,它是免费的