为什么127.0.0.1不能在Laravel .env& database.php文件但是' localhost'会吗?

时间:2017-07-19 03:01:05

标签: php mysql laravel

首先请允许我说通过关注此stackoverflow问题解决了sqlstate[hy000] [2002] connection refused的问题:Laravel: SQLSTATE[HY000] [2002] Connection refused

但是我很困惑为什么localhost工作而127.0.0.1没有。有人可以解释这些差异吗?只要您的127.0.0.1映射到/ etc / hosts文件中的localhost,我认为它们是相同的。

如果这些问题需要更多信息,那就不太确定了,如果你这样做,我很乐意提供这些信息。

编辑:对不起,如果这是一个措辞不好的问题,我尽可能简单地提出问题。考虑到'问题'这个问题不再存在,我真的只是在寻找更多关于为什么上述Stackoverflow问题中的答案有效的解释。该答案中没有提供太多信息。如果我自己这样说的话,答案很差。

编辑2:我的系统设置包括Virtualbox,Vargant和Laravel Homestead。我有一个流浪盒设置与33060的mysql端口(设置时标准端口)。我能通过SQLPro连接到127.0.0.1:33060就好了。但是通过我的Laravel应用程序,我无法通过127.0.0.1仅通过localhost连接。如果我能够使用应用程序中的localhost和SQLPro中的127.0.0.1进行连接,这仍然是我的mysql配置问题吗?这是不是意味着我应该能够连接到任何一个或反之亦然?

1 个答案:

答案 0 :(得分:1)

如此serverfault问题MySQL cannot connect via “localhost”, only 127.0.0.1中所述,mysql在指定localhost时连接到unix套接字,但如果提供127.0.0.1则连接到网络套接字。

根据mysql的配置方式,不是两个频道都可用。此外,操作系统或防火墙配置也可能阻止mysql使用网络连接。