我在Windows 7 32位上安装了Xampp。当我尝试在XAMPP控制面板(v3.2.1)中启动MySql时,我收到以下消息,并且MySql无法启动。
23:02:03 [mysql] Problem detected!
23:02:03 [mysql] Port 3306 in use by ""C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" MySQL"!
23:02:03 [mysql] MySQL WILL NOT start without the configured ports free!
23:02:03 [mysql] You need to uninstall/disable/reconfigure the blocking application
23:02:03 [mysql] or reconfigure MySQL and the Control Panel to listen on a different port
23:02:03 [mysql] Attempting to start MySQL service...
报告了一个类似的问题here,但没有可行的答案。当我尝试在禁用MySql时安装,结果是我甚至没有选择尝试运行它。
我是Xampp的新手,不知道在哪里寻找解决问题的方法
我需要用Php。
运行Apache和MySql答案 0 :(得分:41)
您已在此计算机上安装了使用端口3306的mySQL版本。转到最新的my.ini
文件并将端口更改为3307
。重新启动mySQL服务,看看它是否出现。
您还需要在xampp \ php \ php.ini
中将端口3306更改为3307答案 1 :(得分:28)
你有两个版本的mysql使用相同的端口。 3306。 改变端口。
如何更改xampp的mysql端口?
代码:
Password = your_password
port = 3306 ---> 3307
socket = "/ xampp / mysql / mysql.sock"
这里也是
代码:
The MySQL server
[ mysqld ]
port = 3306 ---> 3307
socket = "/ xampp / mysql / mysql.sock"
2. Start mysql service
答案 2 :(得分:8)
我发现重新安装Xampp作为管理员并以管理员身份运行它。
答案 3 :(得分:2)
如果有两个MySql实例,那么如果它们同时运行则会出现这样的错误是正常的。如果你真的需要2台服务器,你必须更改其中一台服务器的监听端口,如果不这样做,最好只卸载其中一台服务器。这是MySql本身的无所不知,因为两个程序不能同时在同一个端口上侦听。
答案 4 :(得分:2)
答案 5 :(得分:0)
在macOS上遇到同样的问题,并通过再次运行相同的安装程序修复。
而我可能不通过 <强> 注意:强>
确保在运行安装程序时选择'XAMPP核心文件'组件,因为默认情况下未选中它。 虽然重新运行安装程序并不是一个聪明的选择,但必须时不时地执行它。我的安装程序是xampp-osx-7.0.13-1-installer.dmg 更新:我的 MAMP 正在使用这个简单的解决方案here。因此,同样适用于 XAMPP 。
答案 6 :(得分:0)
如果您之前安装过MySQL Workbench,问题是另一个MySQL实例正在3306端口运行。
所以卸载MySQL和XAMPP,然后重新安装XAMPP。
这对我有用。
答案 7 :(得分:0)
但是,我只有1个mysqld运行实例。
控制面板似乎并不像看起来那么聪明。据我所知,mysqld的单个实例是我刚刚更新的新实例,但作为“服务”运行。然后控制面板尝试启动它,而不是意识到它已经运行,它假定它的另一个服务并报告错误。
可能的原因:卸载程序无法从mysql服务中删除autostart属性,因此新安装程序将其取出。
解决方案:
打开Xammpp控制面板,然后单击右侧的“服务”按钮。这将打开服务控制面板。
在正在运行的进程列表中查找mysqld,右键单击它以获取属性并将启动类型更改为“手动”。
当你在这里时,你也可以为Apache2做同样的事情。
应用更改并关闭服务控制面板。
现在单击xampp控制面板上的配置按钮,取消选中Mysql(和Apache)自动启动功能。
重新启动机器。 你现在应该能够启动/停止Mysql&amp; Apache没有任何错误消息。 如果这样可行,请像往常一样使用Xampp控制面板来启动/停止添加服务或正常添加自动启动。 无需弄乱任何端口或配置文件。
答案 8 :(得分:0)
这是一种解决问题的简单快捷的方法。
您无需打开services
或编写任何cmd
代码,只需按照我的步骤操作即可:
在XAMPP control
面板中单击Explorer
按钮
从目录中找到mysql_stop.bat
文件并运行它。
就这些!超级容易。
刷新您的netstat
列表,您会发现它已消失。
请使其成为最佳答案。
答案 9 :(得分:0)
因此,如果您使用的是 Windows 计算机,则可以打开任务管理器。检查进程列表,并从中删除 mysqlId。重新启动 xampp。它会正常工作。
答案 10 :(得分:0)
您需要卸载/禁用/重新配置使用 3306 端口的阻塞应用程序。但是,如果由于某种原因,您无法执行上述操作,可能是因为您也需要其他应用程序,请按照以下步骤进行更改MySQL 端口到 3307。
$cfg['Servers'][$i]['host'] = '127.0.0.1';
(出现在我的文件的第 27 行)。现在将其添加到您找到的行下方(根据我的文件在第 28 行):$cfg['Servers'][$i]['port'] = '3307';
现在,你可以走了。另请注意,您必须将所有项目的端口更改为 3307 才能正常工作。例如:从项目的数据库配置文件中的 $servername = "localhost";
到 $servername = "localhost:3307";
。
我希望这也适用于您。