在phpEnv中如何配置ThinkPHP以连接MySQL数据库?
- 内容介绍
- 文章标签
- 相关推荐
本文共计965个文字,预计阅读时间需要4分钟。
非常抱歉,您提供的信息似乎不完整。为了更好地帮助您,请提供完整的句子或段落,我将根据您的要求进行改写。
为什么 phpEnv 里必须用 127.0.0.1 而不是 localhost
MySQL 在 Windows 下对 localhost 有特殊处理:它会尝试走命名管道或 socket,而 phpEnv 默认只启用 TCP/IP。你看到的 SQLSTATE[HY000] [2002] Connection refused 错误,基本就是这个原因。
-
DB_HOST=localhost→ PHP 尝试连接 MySQL 的 socket 文件(但 phpEnv 没配或路径不对) -
DB_HOST=127.0.0.1→ 明确走 TCP/IP,绕过 socket 问题 - 即使 MySQL 服务在本机,也别信“localhost 更快”——在 phpEnv 场景下它大概率直接失败
.env 配置优先级和常见覆盖陷阱
ThinkPHP 6/8 启用 .env 后,config/database.php 里的 connections.mysql.hostname 等字段会被完全忽略——哪怕你只改了 .env 里一个键,整个连接配置都以它为准。
本文共计965个文字,预计阅读时间需要4分钟。
非常抱歉,您提供的信息似乎不完整。为了更好地帮助您,请提供完整的句子或段落,我将根据您的要求进行改写。
为什么 phpEnv 里必须用 127.0.0.1 而不是 localhost
MySQL 在 Windows 下对 localhost 有特殊处理:它会尝试走命名管道或 socket,而 phpEnv 默认只启用 TCP/IP。你看到的 SQLSTATE[HY000] [2002] Connection refused 错误,基本就是这个原因。
-
DB_HOST=localhost→ PHP 尝试连接 MySQL 的 socket 文件(但 phpEnv 没配或路径不对) -
DB_HOST=127.0.0.1→ 明确走 TCP/IP,绕过 socket 问题 - 即使 MySQL 服务在本机,也别信“localhost 更快”——在 phpEnv 场景下它大概率直接失败
.env 配置优先级和常见覆盖陷阱
ThinkPHP 6/8 启用 .env 后,config/database.php 里的 connections.mysql.hostname 等字段会被完全忽略——哪怕你只改了 .env 里一个键,整个连接配置都以它为准。

