Hyperf 的 MySQL 连接池配置文件默认在 config/autoload/database.php 中,该文件是数据库连接主配置入口,所有库的连接参数及 pool 子项均在此定义;.env 仅提供环境变量,不定义连接池逻辑,且各库需单独配置 pool,heartbeat 必须为正整数、max_idle_time 须严格小于 MySQL 的 wait_timeout,修改后需重启服务生效。

Hyperf 的 MySQL 连接池配置文件默认在 config/autoload/database.php 中。
配置位置说明
这个文件是数据库连接的主配置入口,所有数据库(包括 default 及其他自定义库)的连接参数、驱动选项、连接池行为都定义在这里。
面向 CRM 系统的 MySQL 8 数据库模式设计。当用户需要为客户关系管理(CRM)系统设计、评审、优化或生成数据库模式时,应使用此项技能。
- 不是
.env文件:.env 只负责提供环境变量(如 DB_HOST、DB_PORT),不直接定义连接池逻辑 - 不是全局配置文件:每个数据库连接需单独在
database.php的对应键下配置pool子项 - v2.x 和 v3.x 均沿用此路径,结构一致;部分老项目可能叫
db.php,但官方骨架已统一为database.php
关键配置段示例
在 database.php 中,MySQL 连接池相关参数写在 'pool' 数组里,例如:
'default' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
// ... 其他连接参数
'pool' => [
'min_connections' => 5,
'max_connections' => 50,
'connect_timeout' => 10.0,
'wait_timeout' => 3.0,
'heartbeat' => 30, // 心跳检测间隔(秒)
'max_idle_time' => 55.0, // 连接最大空闲时间(秒)
],
],
注意配置生效前提
这些参数不会自动生效,需确保:
-
heartbeat设为正整数(如30),设为-1表示禁用心跳 -
max_idle_time必须严格小于 MySQL 服务端的wait_timeout值(建议至少小 5 秒) - 修改后需重启服务(Swoole Worker),热更新不生效连接池参数

















