ThinkPHP 5.1 数据库配置统一在 config/database.php,推荐通过 .env 管理敏感信息并用 env() 读取;修改后需执行 php think clear:config 清缓存,并用 php think db:connect 验证连接。

ThinkPHP 5.1 的数据库连接配置统一放在 config/database.php 文件中,修改它即可生效。这个文件返回一个标准 PHP 关联数组,结构清晰、易于维护。
找到并打开配置文件
项目根目录下的 config/database.php 就是唯一入口。该文件默认存在,内容类似:
'type' => 'mysql''hostname' => '127.0.0.1''database' => 'thinkphp''username' => 'root''password' => '''hostport' => '3306'
确保用 UTF-8 无 BOM 编码编辑(推荐 VS Code 或 Notepad++),避免因编码问题导致解析失败。
安全修改的推荐方式
不建议直接写死账号密码,应优先通过环境变量管理敏感信息:
立即学习“PHP免费学习笔记(深入)”;
- 在 .env 文件中添加:
DB_HOST=192.168.1.100<br>DB_NAME=myapp_db<br>DB_USER=app_user<br>DB_PASS=secure_password
- 然后在 config/database.php 中改用
env()函数读取:
'hostname' => env('DB_HOST', '127.0.0.1'),<br>'database' => env('DB_NAME', 'thinkphp'),<br>'username' => env('DB_USER', 'root'),<br>'password' => env('DB_PASS', '')
修改后必须做的两件事
配置变更不会自动生效,尤其在生产环境启用缓存时:
- 运行命令清除配置缓存:
php think clear:config - 验证连接是否成功:
php think db:connect(TP5.1 可用类似逻辑自行写个测试接口,如查询一条数据)
特殊情况处理
如果部署到虚拟主机或遇到连接失败,注意检查:
- MySQL 版本是否为 8.0+:默认加密方式为
caching_sha2_password,PHP 驱动可能不兼容;需执行 SQL 切换回mysql_native_password:ALTER USER 'your_user'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; - 数据库用户名是否被限制访问 IP(如只允许
localhost);虚拟主机常用127.0.0.1或具体主机地址代替localhost - 确认数据库名、表前缀、字符集(
'charset' => 'utf8mb4'更稳妥)是否匹配实际环境



















