MAMP"由于端口正在使用,因此无法启动Apache." AND"无法通过/tmp/mysql.sock连接到本地MySQL服务器

whe*_*hip 5 php mysql sockets apache tcp

重新启动MAMP后,我注意到MySQL Server复选框没有像往常那样变绿.我再次单击"启动服务器"并收到一条消息,指出"由于某些其他软件正在使用端口8888,因此无法启动Apache." 很奇怪,因为我没有对系统或应用程序进行任何更改,也没有安装任何更新.我打开Chrome并输入了我正在本地开发的网站的网址,它显示没问题.但是,当我尝试使用虚拟用户帐户登录该站点时,我收到了"SQLSTATE [HY000] [2002]无法通过套接字连接到本地MySQL服务器'/Applications/MAMP/tmp/mysql/mysql.sock' (2)"消息.

关于第一个问题(另一个程序使用的Apache端口),我打开了终端并>> sudo lsof -i -P | grep -i "listen"查看哪些端口会出现.当MAMP关闭时,控制台输出为

launchd 1 root 23u IPv6 0x156733646a84db9h 0t0 TCP *:5900 (LISTEN) launchd 1 root 24u IPv4 0x156733646a84eba8 0t0 TCP *:5900 (LISTEN) launchd 1 root 28u IPv6 0x156733646a84d75u 0t0 TCP localhost:631 (LISTEN) launchd 1 root 29u IPv4 0x156733646a84e3bu 0t0 TCP localhost:631 (LISTEN) launchd 1 root 31u IPv6 0x156733646a84d31u 0t0 TCP *:22 (LISTEN) launchd 1 root 32u IPv4 0x156733646a857ba5 0t0 TCP *:22 (LISTEN) kdc 96 root 6u IPv6 0x156733646a84cedt 0t0 TCP *:88 (LISTEN) kdc 96 root 8u IPv4 0x156733646c2a9ba5 0t0 TCP *:88 (LISTEN) imagent 270 userhomedirectory 7u IPv4 0x156733646a1a13bb 0t0 TCP *:52216 (LISTEN) EEventMan 279 userhomedirectory 4u IPv4 0x156733646a8573bb 0t0 TCP *:2968 (LISTEN) MAMP运行时的输出是(上面列出的所有内容)+:

httpd 28772 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN) httpd 28786 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN) httpd 28790 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN) httpd 28791 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN) httpd 28792 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN) httpd 28793 userhomedirectory 5u IPv6 0x156733646a84b55f 0t0 TCP *:8888 (LISTEN) httpd 28794 userhomedirectory 5u IPv6 0x169041156a84b55f 0t0 TCP *:8888 (LISTEN)

因此,端口8888仅在启动MAMP时使用,这也告诉我实际上是连接了Web服务器.所以我不明白为什么我收到Apache端口错误.

无论如何,接下来我打开了Activity Monitor并杀死了正在运行并重新启动MAMP的每个httpd和mysqld进程,但问题仍然存在.我第一次杀死它后,mysqld进程再也没有出现过.

然后,我搜索了SO.我遇到关于MAMP PRO 的帖子,并决定尝试建议的解决方案,但无济于事.这同样适用于这个职位的建议,删除并重新安装整个应用程序.

到现在为止,我无法判断mysql错误是否导致apache错误或者apache错误是否导致mysql错误.所以,我搜索并尝试了几个关于mysql错误的解决方案,包括这篇文章的建议和这篇文章,但这些都没有为我工作.我的意思是,我确实在这些页面上尝试了每一条建议,从发布的评论回答.

我也尝试重新启动计算机,更改apache,nginx和mysql端口配置设置,从apache切换到nginx,从终端加载MAMP的MySql,创建带有套接字配置的my.cnf文件.其中没有一个有效.

有人对这个有经验么?是Apache端口错误还是MySQL套接字错误?还是完全不同的东西?考虑到没有安装更新或更改系统或应用程序中的任何内容,可能导致这种情况的原因是什么?

提前致谢.

***编辑2014年12月10日***
所以我整夜玩这个.我重新安装了几次应用程序.安装了一些更新,甚至将我的笔记本电脑的MAMP设置复制到了我的桌面.但是,我仍然有同样的错误.然后我将MAMP的文档根改回默认值Mac HD -> Applications -> MAMP -> htdocs并且它有效!我以前把它设置为/Users/userhomedirectory/Sites.

我将此作为编辑而不是答案发布,因为问题仍然存在.更改文档根目录Users/myhomedirectory/Sites给我提供与以前相同的错误消息,因此我的解决方案更像是一种解决方法.希望这能为某人制造灯泡,因为我仍然无法弄清楚可能是什么原因和/或解决方案.

Mon*_*onk 35

我不知道它是否会对某人有所帮助......但这对我有用:

sudo apachectl stop :-)

来自/sf/answers/1700124751/


小智 7

尝试进入活动监视器并搜索 Mysqld 和 Httpd 并结束它们的所有进程。然后重新启动Mamp。这对我有用


小智 4

转到 MAMP 配置并将端口地址更改8888任何其他地址

MAMP->Preferences->Ports->Apache Port
Run Code Online (Sandbox Code Playgroud)

我认为它会工作得很好