default 是 codeigniter 默认数据库连接组标识符,由 $active_group = 'default' 指定,框架据此加载 $db['default'] 配置;可修改但不建议删除,以确保核心类和第三方库兼容。

default 是 CodeIgniter 中数据库配置的默认活动连接组名称,它不是关键词或保留字,而是一个约定俗成的标识符,表示框架在未显式指定其他数据库组时,自动加载并使用的那一套数据库连接参数。
简单说:只要没手动切换,CI 就用 default 组里的 hostname、username、database 等设置去连数据库。
default 组是怎么被识别的?
关键在于这个变量:
$active_group = 'default';
它位于 application/config/database.php 文件顶部。CI 启动时读取该值,然后去找 $db['default'] 这个数组——也就是你配置的具体连接信息。
- 如果你把
$active_group改成'production',CI 就会尝试加载$db['production'] - 如果
$db['production']不存在,就会报错:“Database: Invalid group specified”
default 组可以删掉或改名吗?
可以,但不建议随意删除,因为:
- 大多数 CI 核心类(如
Model、DB()辅助函数)默认依赖$active_group - 第三方库或扩展常假定
default存在 - 删除后必须确保所有
DB()调用都显式传入组名,例如DB('other_db')
如果你确实要换名,只需同步修改两处:
$active_group = 'my_main_db';$db['my_main_db'] = [ /* 配置数组 */ ];
为什么推荐保留 default 组?
- 快速启动项目:不用每次调用都写组名
- 兼容性好:适配大多数教程、插件和迁移脚本
- 逻辑清晰:一个主库归为
default,读写分离或日志库等再另设slave、logdb等组
比如这样扩展很常见:
$db['default'] = [ /* 主库,用于写操作 */ ]; $db['slave'] = [ /* 从库,用于读操作 */ ]; $db['logdb'] = [ /* 日志专用库 */ ];
然后在代码里按需调用:
$this->load->database('slave'); // 切到从库
$this->load->database('logdb'); // 切到日志库
// 不传参就自动用 default
不复杂但容易忽略











