重新启动MAMP后,我注意到MySQL服务器复选框没有像往常那样变成绿色。 我再次单击"启动服务器"并收到一条消息,指出"Apache 无法启动,因为端口 8888 正被其他软件使用。 很奇怪,因为我没有对系统或应用程序进行任何更改,也没有安装任何更新。 我打开Chrome并输入了我正在本地开发的网站的网址,它显示没有问题。 但是,当我尝试使用虚拟用户帐户登录站点时,我收到"SQLSTATE[HY000] [2002] 无法通过套接字连接到本地MySQL服务器"/Applications/MAMP/tmp/mysql/mysql.sock'(2("消息。
关于第一个问题(另一个程序正在使用的Apache Port(,我打开了终端和>> 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 端口错误。
无论如何,接下来我打开了活动监视器并杀死了正在运行的每个httpd和mysqld进程并重新启动了MAMP,但是问题仍然存在。 mysqld进程在我第一次杀死它后再也没有出现过。
然后,我搜索了一下。 我遇到了一篇关于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
会给我与以前相同的错误消息,因此我的解决方案更像是一种解决方法。 希望这会为某人触发灯泡,因为我仍然无法弄清楚原因和/或解决方案是什么。
它是否会帮助某人...但这对我有用:
sudo apachectl stop
:-(
从 https://stackoverflow.com/a/24287496/1420009
尝试转到活动监视器并搜索Mysqld和Httpd并结束它们的任何进程。然后重新启动 Mamp。这对我有用
升级到优胜美地和 MAMP 版本 3.0.7.3 后我遇到了同样的问题。尝试了很多建议并在那里修复,但没有一个对我有用。
当它击中我时!在MAMP中点击"将Web &MySQL端口设置为80和3306"按钮时,MAMP为Apache AND Nginx设置端口80。导致错误,因为两者都设置为使用相同的端口。我只是将Nginx设置为另一个随机端口,点击"确定"按钮,没有出现任何错误。
我重新启动了Apache和MySQL。瞧!
我所有的本地主机网站都像更新前一样工作。
幸运的是,我刚刚读了一篇有趣的文章,解释了如何在Apache前面设置Nginx,以独立地提供静态和动态服务以优化性能。这激发了这个想法。
我希望它有所帮助!
MAMP 配置并将端口地址8888
更改为任何其他地址
MAMP->Preferences->Ports->Apache Port
我认为它会正常工作
更改 MAMP Nginx 端口 70 等。
和
sudo lsof -nP -i4TCP:8888 | grep LISTEN
然后杀死PID
例如:如果端口:8888
sudo lsof -nP -i4TCP:8888 | grep LISTEN
---
httpd 15030 yourusername 4u IPv6 0x5fdd0f41d81c1dd3 0t0 TCP *:8888 (LISTEN)
httpd 15031 yourusername 4u IPv6 0x5fdd0f41d81c1dd3 0t0 TCP *:8888 (LISTEN)
httpd 15032 yourusername 4u IPv6 0x5fdd0f41d81c1dd3 0t0 TCP *:8888 (LISTEN)
--
sudo kill -9 15030
sudo kill -9 15031
sudo kill -9 15032
更改 Nginx 端口对我有帮助。
像内森·鲁特曼一样,这对我来说是一个权限问题。我收到了上面显示的相同错误 - Apache couldn't be started because port 8888 is in use by some other software.
......MySQL Server无法启动。
我没有运气更改端口或将目录移动到htaccess。
什么有效:
我去了Applications
,选择了MAMP
,并调出了Finder的Get Info
对话。我为当前用户和管理员添加了Read & Write
权限,单击了齿轮,然后单击了Apply to enclosed items...
我为MAMP Pro做了同样的事情,只是为了确保我的基地被覆盖。
启动 MAMP,将端口更改为默认值,然后繁荣!一切正常,包括MySQL服务器 - 无需终端命令。
当我将目录改回/Users/myuser/Sites/
文件夹时,这也继续成功工作。
我的意思不是微不足道,但是当这种情况发生在我身上时,我开始尝试这里的一些建议(权限等(,但是当我刚刚重新启动计算机时,它之后就可以工作了。因此,只是提醒在尝试其他方法之前尝试重新启动。
更新:
实际上,这只是一个简单的权限问题。我再次遇到了同样的问题,只是做了一个chown -R nathan:staff <dir>
并在 MAMP 中重新启动了 Apache。它工作正常。
原文:
奇怪的是,我认为我解决了机器上的问题。在查看默认 htdocs 目录和我想使用的目录后,我注意到默认目录归nrutman:admin
所有,而我想使用的目录归nrutman:staff
所有(同一用户,不同组(。
通过Finder的"信息"面板(Cmd-I(,我为Administrators
组添加了读/写权限,并删除了员工组权限。我重新启动了 MAMP,一切正常!然后,通过chown
我将所有者改回nrutman:staff
。Finder的信息面板现在看起来与以前相同,但现在MAMP将使用该目录而不会抱怨端口。
绝对看起来像一个 MAMP 错误。不太确定发生了什么,但我希望这有助于其他正在与这个问题作斗争的人。
如果没有正在运行的 MySQL 实例,则可能是权限问题。右键单击图标 -> run as administrator
.
转到 MAMP 配置并将端口地址 (Apache+Nginx( 8888 更改为> 80 Apache 和 80 Nginx 端口。 是的,MySql 是 3306....
运行
sudo kill $(sudo lsof -t -i:8000)
其中 8000 是端口号