phpEnv 启动 MySQL 后,需执行 mysql -u root -p(密码为空)进入 mysql shell 或访问 http://localhost/phpmyadmin 验证服务运行;ThinkPHP 8 项目应配置 .env 文件,DB_HOST 必须为 127.0.0.1(非 localhost),并启用 php_pdo_mysql 扩展。

phpEnv 本身不负责数据库配置,它只是帮你装好 MySQL 和 Apache 的集成环境;真正的数据库连接配置在 PHP 项目里,比如 .env 或 config/database.php。你得先确认 phpEnv 已成功启动 MySQL 服务,再让项目连上去。
phpEnv 启动后怎么确认 MySQL 在运行
安装完 phpEnv 并点击「启动服务」后,MySQL 默认监听 127.0.0.1:3306(不是 localhost,某些 PHP 配置下二者行为不等价):
- 打开命令行,执行
mysql -u root -p,直接回车(默认密码为空)能进 mysql shell,说明服务起来了 - 访问
http://localhost/phpmyadmin能打开界面,且左上角显示「服务器:localhost:3306」,也说明正常 - 如果报错
Can't connect to MySQL server on '127.0.0.1' (10061),大概率是 phpEnv 没点「启动 MySQL」,或端口被其他软件(如 Docker、Navicat 自带服务)占了
ThinkPHP 项目中改数据库配置的位置
用 composer create-project topthink/think 创建的 TP8 项目,默认读取 .env 文件,而不是 config/database.php —— 后者只是兜底配置,.env 优先级更高:
- 确保项目根目录下有
.env文件(没有就复制.env.example改名) - 编辑它,填入以下几行(注意不要漏掉
DB_PORT=3306,phpEnv 的 MySQL 默认端口就是 3306):DB_TYPE=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_NAME=your_db_name DB_USER=root DB_PWD=
- 如果改完不生效,清空
runtime/cache/目录,TP8 会缓存配置
常见连不上数据库的三个坑
不是配错密码,而是这些细节卡住:
立即学习“PHP免费学习笔记(深入)”;
-
DB_HOST写成localhost:Windows 下部分 PHP 版本会尝试走命名管道而非 TCP,而 phpEnv 的 MySQL 只监听 TCP,必须写127.0.0.1 - MySQL 字符集没设成
utf8mb4:phpEnv 自带的 MySQL 8 默认是utf8mb4_0900_ai_ci,但 TP8 的 PDO 连接字符串里如果没显式加charset=utf8mb4,可能建表失败或存 emoji 报错 - 没开
php_pdo_mysql扩展:在 phpEnv 界面 → PHP → 扩展管理里,确认这个扩展打了勾;光装 MySQL 不等于 PHP 能连,扩展才是桥梁
真正麻烦的不是改哪几个字段,而是 phpEnv 启动的服务和 PHP 项目读的配置之间存在两层抽象——你得同时盯住服务是否活着、连接参数是否匹配、PHP 扩展是否就位。少一个环节,PDOException: SQLSTATE[HY000] [1045] 就会照常报给你看。



















