mySQL 和 XAMPP 的端口冲突

Posted

技术标签:

【中文标题】mySQL 和 XAMPP 的端口冲突【英文标题】:Conflicting ports of mySQL and XAMPP 【发布时间】:2015-11-17 08:12:22 【问题描述】:

我使用 XAMPP/Apache 已经有一段时间了,最​​近决定安装 mysql。然而,它们似乎是矛盾的。 MySQL 似乎优先考虑,并且它运行正常,但是 XAMPP/Apache 在尝试启动 Apache 时给了我这个错误消息:

03:07:32 AM  [Apache]   Attempting to start Apache app...
03:07:33 AM  [Apache]   Status change detected: running
03:07:33 AM  [Apache]   Status change detected: stopped
03:07:33 AM  [Apache]   Error: Apache shutdown unexpectedly.
03:07:33 AM  [Apache]   This may be due to a blocked port, missing dependencies, 
03:07:33 AM  [Apache]   improper privileges, a crash, or a shutdown by another method.
03:07:33 AM  [Apache]   Press the Logs button to view error logs and check
03:07:33 AM  [Apache]   the Windows Event Viewer for more clues
03:07:33 AM  [Apache]   If you need more help, copy and post this
03:07:33 AM  [Apache]   entire log window on the forums

我尝试按照此处的说明进行操作: http://www.complete-concrete-concise.com/web-tools/how-to-change-the-apache-port-in-xampp

我已经尝试更改文档:xampp/apache/conf 中的 httpd.conf

将“Listen 80”更改为各种内容,重新启动应用程序后出现相同的错误消息。

非常感谢您在此问题上的任何帮助。我不希望仅仅为了使用 XAMPP 而删除 mySQL,但如果它们无法同时运行,我会这样做。

提前致谢。

编辑:

我认为它与 MySQL 冲突的原因是:

03:26:51 AM  [mysql]    Problem detected!
03:26:51 AM  [mysql]    Port 3306 in use by ""C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56"!
03:26:51 AM  [mysql]    MySQL WILL NOT start without the configured ports free!
03:26:51 AM  [mysql]    You need to uninstall/disable/reconfigure the blocking application
03:26:51 AM  [mysql]    or reconfigure MySQL and the Control Panel to listen on a different port

我在暂时禁用 mySQL 以使用 XAMPP/Apache 时遇到了一些困难。 有什么办法可以改变端口,让它们可以共存?

编辑 2:

尝试按照此处的说明进行操作: http://silentlyrun.blogspot.com.au/2013/02/how-to-change-apache-n-mysql-port-for.html

我遇到这些错误消息后:

09:13:22 AM  [main]     Initializing Modules
09:13:22 AM  [Apache]   Problem detected!
09:13:22 AM  [Apache]   Port 80 in use by "Unable to open process" with PID 4084!
09:13:22 AM  [Apache]   Apache WILL NOT start without the configured ports free!
09:13:22 AM  [Apache]   You need to uninstall/disable/reconfigure the blocking application
09:13:22 AM  [Apache]   or reconfigure Apache and the Control Panel to listen on a different port
09:13:22 AM  [Apache]   Problem detected!
09:13:22 AM  [Apache]   Port 443 in use by "Unable to open process" with PID 4084!
09:13:22 AM  [Apache]   Apache WILL NOT start without the configured ports free!
09:13:22 AM  [Apache]   You need to uninstall/disable/reconfigure the blocking application
09:13:22 AM  [Apache]   or reconfigure Apache and the Control Panel to listen on a different port

根据这些说明,新端口应该相同吗?我假设是因为他们都是 80 岁。

4. Search the string "Listen" in the file.
5. Replace port number 80 to any other unused port number.
6. Search for "ServerName" in the file.
7. Replace port number 80 to any other unused port number in the ServerName.

编辑 3:

由于我不知道的原因,XAMPP/MySQL 在从上面的silentlyrun.blogspot 链接重新安装和端口更改后可以正常工作。 但是 XAMPP/Apache 仍然存在问题:

09:32:14 AM  [Apache]   Error: Apache shutdown unexpectedly.
09:32:14 AM  [Apache]   This may be due to a blocked port, missing dependencies, 
09:32:14 AM  [Apache]   improper privileges, a crash, or a shutdown by another method.
09:32:14 AM  [Apache]   Press the Logs button to view error logs and check
09:32:14 AM  [Apache]   the Windows Event Viewer for more clues
09:32:14 AM  [Apache]   If you need more help, copy and post this
09:32:14 AM  [Apache]   entire log window on the forums

【问题讨论】:

我认为您已经打开了与您的 XAMPP 相同端口的其他应用程序。你的Skype打开了吗? 感谢您的回复。不,我没有打开 Skype,我已经关闭了所有非必要的应用程序,当我尝试重新启动应用程序时,它仍然给出第一次提到的错误。即使通过任务管理器关闭 MySQL,我仍然会遇到这个问题。无论如何,感谢您的帮助。 XAMPP 自带了自己的 mysql 安装,这就是为什么您会收到“正在使用的端口 3306”错误。 您能否简单地尝试以管理员身份运行它,看看是否能解决问题?通常任何端口 【参考方案1】:

要在另一个 MySQL 服务器正在运行时解决 MySQL 端口和服务冲突,您需要执行以下步骤:-

    关闭 XAMPP 服务器

    打开文件 C:\xampp\mysql\bin\my.ini (C: 是默认的 XAMPP 安装)

    将端口号 3306 替换为 3307

# password       = your_password  
port            = 3307
socket         = "C:/xampp/mysql/mysql.sock"

\# The MySQL server
[mysqld]
port= 3307

    保存文件并打开 XAMPP 控制面板(以管理员身份运行,否则将不允许以下更改)

    在 XAMPP 控制面板中点击 Config > 服务和端口设置

    转到 MySQL 选项卡

    将服务名称 mysql 更改为 mysqlxampp 并将主端口 3306 更改为 3307

    点击保存然后保存并关闭XAMPP

    再次运行 XAMPP,您将能够启动 MySQL 服务器

您可能还面临 phpMyAdmin 的问题

你可以添加行

$cfg['Servers'][$i]['port'] = '3307';

在 phpMyAdmin 根目录下的 config.inc.php 文件中。

【讨论】:

我已经完成了第 9 步,下一步该做什么 正在尝试启动 MySQL 服务...但没有任何响应 @Ashish in "config.inc.php" 我们应该在哪里写这段代码 "$cfg['Servers'][$i]['port'] = '3307';" @KashifIftikhar 你可以在 $cfg['Servers'][$i]['connect_type'] = 'tcp'; 之后添加这一行 谢谢先生 【参考方案2】:

如果您已经单独安装了 MySQL,并且还运行了 XAMPP 的 MySQL,那么您将遇到此问题。冲突是针对端口 3306 而不是针对端口 80。我建议您遵循此处提到的准则:

http://silentlyrun.blogspot.com.au/2013/02/how-to-change-apache-n-mysql-port-for.html

当我单独安装 MySQL 并作为 XAMPP 的一部分时,这对我有用。

【讨论】:

感谢您的回复。我按照这些说明进行操作,但它仍然向我显示这些错误消息。但是现在在启动时它说:“无法打开进程”正在使用端口 80,PID 为 4084! [Apache] 没有配置的免费端口,Apache 将无法启动! [Apache] 您需要卸载/禁用/重新配置阻塞应用程序 [Apache] 或重新配置 Apache 和控制面板以侦听不同的端口和端口 443 正在使用的“无法打开进程”使用 PID 4084! [Apache] 如果没有配置的端口可用,Apache 将无法启动! 似乎旧的 XAMPP 实例没有正确关闭。尝试在任务管理器中杀死进程。【参考方案3】:

重启你的机器然后使用命令行netstat。它将向您显示哪些应用程序打开了端口。

【讨论】:

以上是关于mySQL 和 XAMPP 的端口冲突的主要内容,如果未能解决你的问题,请参考以下文章

linux中安装的mysql和xampp的mysql占用同一个端口是不是会有冲突

与 XAMPP Apache 的端口冲突

Windows 10 上的 XAMPP 和 Skype 端口冲突

IIS 和 XAMPP 冲突,端口已更改

Windows 8 上的 XAMPP 和 Skype 端口冲突 [重复]

解决xampp端口冲突