php - 为什么 127.0.0.1 在 Laravel .env 和 database.php 文件中不起作用,但 'localhost' 可以?

标签 php mysql laravel

首先让我说,我解决了 sqlstate[hy000] [2002] connection refused 的问题,方法是遵循以下 stackoverflow 问题:Laravel: SQLSTATE[HY000] [2002] Connection refused

但是我很困惑为什么 localhost 可以工作而 127.0.0.1 不能。有人可以解释差异吗?我认为只要您的 127.0.0.1 映射到/etc/hosts 文件中的本地主机,它们就是同一件事。

不太确定这个问题是否需要更多信息,如果需要,我很乐意提供。

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

编辑 2:我的系统设置包括 Virtualbox、Vargant 和 Laravel Homestead。我有一个 vagrant box,mysql 端口设置为 33060(设置时的标准端口)。我可以通过 SQLPro 连接到 127.0.0.1:33060 就好了。但是,通过我的 Laravel 应用程序,我无法仅通过 127.0.0.1 本地主机进行连接。如果我能够使用应用程序中的本地主机和 SQLPro 中的 127.0.0.1 进行连接,这仍然是我的 mysql 配置的问题吗?这是否意味着我应该能够连接到其中一个或反之亦然?

最佳答案

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

根据您的 mysql 的配置方式,并非两个 channel 都可用。此外,操作系统或防火墙配置也可能会阻止 mysql 使用网络连接。

关于php - 为什么 127.0.0.1 在 Laravel .env 和 database.php 文件中不起作用,但 'localhost' 可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45180222/

相关文章:

javascript - 将 PHP 多数组转换为 javascript 的最佳方法

php - HTTP 请求失败! HTTP/1.1 416 请求的范围在 php 文件中不满足

php - 如何将 mcrypt PHP 转换为 Python

php - 查询以查找过去 30 天内点击次数最多的 16 个帖子,并且没有重复的类别

mysql - Asterisk : reconnecting to remote mySQL?

php - 使用php使用表单更新图像问题

c++ - windows下如何使用cpp通过odbc获取mysql中时间戳类型的字段

php - 如何在 Laravel 中禁用注册新用户

php - laravel 5.7如何查看文件(使用多文件上传代码)以及如何编辑

Laravel Auth session 超时