phpEnv 不自带 MySQL,需先独立安装 MySQL 8.4(推荐 MSI),将其 bin 目录(如 C:\Program Files\MySQL\MySQL Server 8.4\bin)添加至系统级 Path,并确保服务运行;PHP 连接失败多因 caching_sha2_password 认证插件不兼容,可执行 ALTER USER 切换为 mysql_native_password 或在 DSN 中显式配置。

phpEnv 本身不自带 MySQL,所谓“添加 MySQL 8.4 LTS”,本质是把已安装的 MySQL 8.4 的 bin 目录手动加进系统环境变量,并确保 phpEnv 启动时能调用到它——不是 phpEnv 官方支持的操作,但完全可行。
确认 MySQL 8.4 已独立安装并可运行
phpEnv 不负责安装或管理 MySQL,它只管 PHP 和 Web 服务。你必须先在 Windows 上完成 MySQL 8.4 的完整安装(推荐使用 MSI 安装包),并验证其服务已启动:
- 打开服务管理器(
services.msc),确认mysql84或类似名称的服务状态为“正在运行” - 命令行执行
mysql --version,应输出类似mysql Ver 8.4.8 for Win64 on x86_64 - 如果报错“不是内部或外部命令”,说明 MySQL 的
bin尚未加入环境变量——这正是下一步要解决的
把 MySQL 8.4 的 bin 目录加入系统 Path
phpEnv 启动时会继承系统环境变量,所以必须把 MySQL 的可执行路径加到 **系统级** Path(不是用户级),否则重启后可能失效:
- 找到你的 MySQL 8.4 安装目录,典型路径是:
C:\Program Files\MySQL\MySQL Server 8.4\bin或D:\phpEnv\server\mysql\mysql-8.4\bin - 右键“此电脑” → “属性” → “高级系统设置” → “环境变量”
- 在“系统变量”区域,双击
Path→ “新建” → 粘贴上面的bin路径 - ⚠️ 删除旧版本 MySQL 的
bin条目(如指向mysql-5.7或mysql-8.0的路径),避免冲突 - 点“确定”保存,**关闭所有已打开的命令行窗口**,再新开一个 cmd 验证:
mysql -u root -p应能正常连接
phpEnv 中无需额外配置,但要注意连接细节
PHP 脚本里用 PDO 或 mysqli 连 MySQL 8.4 时,常见失败不是因为 phpEnv 没“添加”成功,而是认证插件不兼容:
立即学习“PHP免费学习笔记(深入)”;
- MySQL 8.4 默认用
caching_sha2_password,而部分 PHP 8.3/8.4 编译包仍依赖旧版客户端库,会报错:PDOException: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client - 临时解决:登录 MySQL 后执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; - 更稳妥做法:在 PDO DSN 中显式指定字符集和时区,例如:
mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8mb4;timezone=+00:00
验证是否真正生效
别只信 phpinfo() 里显示的 PHP 版本——重点看运行时能否连上数据库:
- 在 phpEnv 网站根目录下建一个
test_db.php,内容为简单 PDO 连接测试 - 浏览器访问该文件,如果抛出连接异常,优先检查
mysql -u root -p是否能在 cmd 中直连成功 - 若 cmd 可连、PHP 不可连,90% 是认证插件或 socket 路径问题(Windows 下一般走 TCP,不用管 socket 文件)
- 注意:phpEnv 自带的 MySQL 管理界面(如 phpMyAdmin)默认仍可能指向它内置的老版本,需手动修改其配置指向新实例
真正卡住人的地方往往不是路径加没加对,而是 MySQL 服务没起来、root 密码记错、或者 PHP 连接时用了 localhost(触发 socket)而非 127.0.0.1(强制 TCP)导致插件协商失败——这些细节比“怎么加环境变量”更值得花时间盯住。



















