# 数据库连接异常分析与修复方案 ## 问题分析 报错信息 `SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)` 表明系统正尝试使用空密码连接数据库,但被拒绝。 经过排查发现: 1. 项目根目录下的 `.env` 文件中配置了正确的数据库密码 (`PASSWORD = dblink`)。 2. 但是,该 `.env` 文件使用了 **Mac Classic (CR, \r)** 格式的换行符,而不是标准的 Unix (LF, \n) 或 Windows (CRLF, \r\n) 格式。 3.这种非标准的换行符导致 PHP 的环境配置解析库无法正确识别文件内容,将整个文件视为一行,从而无法读取到 `DATABASE_PASSWORD` 等关键配置。 4. 由于读取不到密码,系统回退到默认的空密码尝试连接,最终导致了上述权限错误。 ## 修复计划 我们将执行以下步骤来修复此问题: 1. **转换文件格式**:将 `.env` 文件的换行符从 CR 转换为标准的 LF (Unix 格式)。 2. **验证修复**:确认文件内容已正确分行,且应用能够正常连接数据库。 此修复不涉及代码逻辑修改,仅修正配置文件的格式问题。