You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中.env文件含#关键字致数据库连接失败的解决方法

解决Laravel中.env含#字符导致数据库连接失败的问题

这个问题的根源在于Laravel依赖的vlucas/phpdotenv解析库默认会把#当作注释的起始标记——哪怕它出现在值的中间,解析器也会从#开始截断后续内容,所以你设置的DB_PASSWORD=&#252525会被解析成仅保留&,自然无法正常建立数据库连接。

这里有几个可靠的解决方案:

1. 用引号包裹密码值

最简单直接的方法是把密码用双引号或单引号包裹,这样解析器会将引号内的全部内容视为完整字符串,不会把#识别为注释。修改你的.env文件:

# 双引号写法
DB_PASSWORD="&#252525"

# 单引号写法同样有效
DB_PASSWORD='&#252525'

2. 使用原始字符替代HTML实体

如果&#252525是某个特殊字符的HTML实体编码(比如对应特定Unicode/ASCII字符),建议直接将原始字符写入.env并包裹引号。这样能避免实体解析带来的额外问题,示例:

# 假设&#252525对应字符"¥¥¥",直接写入
DB_PASSWORD="¥¥¥"

3. 清除配置缓存(关键步骤)

如果你之前执行过php artisan config:cache生成了配置缓存,务必执行以下命令清除缓存,让Laravel重新读取修改后的.env文件:

php artisan config:clear

验证解析结果

你可以在config/database.php中临时添加一行代码,测试密码是否被完整解析:

dd(env('DB_PASSWORD')); // 运行项目后查看输出是否为完整的&#252525

确认解析正确后,移除测试代码,重新测试数据库连接即可。

内容的提问来源于stack exchange,提问作者Manoj Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 18:12:50