Laravel 8集成MongoDB执行php artisan migrate提示认证失败如何解决
Laravel 8 MongoDB 认证失败报错解决方案
原因1:MongoDB未开启身份认证(本地开发最常见)
Windows环境安装MongoDB默认不会启用身份校验,此时填写用户名密码会直接触发认证失败:
- 操作步骤:
- 修改
.env文件,注释或清空账号密码配置:DB_HOST=127.0.0.1 DB_PORT=27017 DB_DATABASE=mongonews # 注释掉以下两行 # DB_USERNAME=root # DB_PASSWORD= - 执行
php artisan config:clear清空Laravel配置缓存 - 重新运行
php artisan migrate测试即可
- 修改
原因2:身份认证配置不匹配
如果确认你已经手动开启了MongoDB身份认证,按以下项逐一核对:
- 核对认证库配置:你当前默认认证库为
admin,如果你的root用户是在mongonews库下创建的,需要在.env新增配置:DB_AUTHENTICATION_DATABASE=mongonews - 核对账号密码:确认
root用户的密码是否正确,若设置了密码请填写到DB_PASSWORD配置项 - 执行
php artisan config:clear清空缓存后重新测试迁移
快速验证方式
你可以直接通过Mongo shell验证账号有效性,确认能正常连接后再同步配置到Laravel即可:
# 无身份认证场景连接测试 mongo 127.0.0.1:27017/mongonews # 有身份认证场景连接测试,admin替换为你的实际认证库 mongo --port 27017 -u "root" -p "你的密码" --authenticationDatabase "admin"
内容的提问来源于stack exchange,提问作者Shaza
相关产品推荐
相关产品推荐

