错误 #2002 无法通过套接字'/Applications/MAMP/tmp/mysql/mysql.sock' (2)连接到本地MySQL服务器。

15
我正在运行MAMP。直到昨天都一切正常,但是我到目前为止没有找到任何有用的东西。以下是我的问题:
正如标题所述,我收到以下错误消息:
error #2002 "Can't connect to local MySQL server through socket '/Applications/MAMP/tmp/mysql/mysql.sock' (2)"
当我搜索时,我发现这似乎是一个非常常见的错误。
无论如何,当我进入tmp/mysql并输入ls -laxo时,除了./和../目录外,唯一显示的东西是.dummy(我不知道那是什么,但我有一种预感它不是我的问题的来源)。
mysql.sock文件应该位于那里。是否有人知道如何解决这个问题?也许我需要创建mysql.sock文件,但我不知道该在其中放什么。

2
我已经有一段时间没有遇到这个问题了。但是我相信通过在终端中运行命令“killall mysqld”来解决它。希望这对你有所帮助。 - Brandon Beeler
@BrandonBeeler:感谢您回来发布您的修复方案。在其他方法都无效时,它对我很有用:) 您可能希望将其发布为答案并选择它作为答案。 - Ivan Durst
6个回答

36

测试

如果您尝试使用完整路径启动MySQL,它应该可以工作。

/Applications/MAMP/Library/bin/mysql -u root -p

修复

如果这样可以解决问题,那么您可以通过运行以下命令来设置它正常工作:

sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

解决方案

现在MySQL应该可以正常工作了

mysql -u root -p

8
如果“测试”失败会发生什么?我仍然会收到相同的错误。 - Mazzone
你还有另一个参数需要这个答案才能工作... 这看起来不是一个非常有价值的答案。 - ReBa
对于在OSX上使用XAMPP的用户,@davidcondrey仍然是正确的,但是PATH略有不同:ln -sf /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock /tmp/mysql.sock它应该能够成功执行。 - eulerworks
你救了我的一天 :D 谢谢! - LegoBoy
这对我有效。其他解决方案没有。 - undefined

8
我知道有点晚了,但如果有人正在搜索这个(就像我今晚一样,但我找到了解决方案),这是对我有效的方法:
我打开了MAMP并且必须单击“使用默认Apache和MySQL端口”。 (80和3306而不是8888和8889)。 这似乎解决了问题。

将MAMP的MySQL端口设置为8889对我有用。 您可以在以下位置进行设置: MAMP > Preferences > Ports. - Kaizoku Gambare
更改端口后仍然收到相同的消息。 - Farshad

5

比较傻的解决方案……但在我的情况下,我没有启动mysql服务器。所以,请检查一下这个问题!


1

MySQL服务器未启动。

mysqld stop
mysql.server start

1
如果你不想通过MAMP或my.cnf文件中的选项更改端口,可以尝试通过以下命令行强制TCP连接:

/Applications/MAMP/Library/bin/mysql -h 127.0.0.1 -P 8889 -u root

记得设置端口很重要,如果不是mysql默认的3306端口。

-P参数允许你设置端口。

MAMP的默认端口是8889,但是你可以在MAMP运行时轻松地通过MAMP WebStart页面验证你的端口设置:

http://localhost:8888/MAMP/

它会类似于这样:

enter image description here


0

我遇到了同样的问题。当我单独启动MAMP时,问题就解决了。然后发出以下命令就可以正常工作。

mysql -u root -p

这可能也会有所帮助:https://dev59.com/zmox5IYBdhLWcg3wOx_9 - caramba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接