现象
用户部署FastGPT后,登录环节出现MongoDB数据库连接权限异常,无法正常建立数据库连接,经初步排查怀疑docker-compose.yml中的MongoDB相关配置存在错误。登录时会弹出数据库连接权限相关的错误提示,具体报错文本需按实际运行环境获取。
可能原因
核心问题出在FastGPT服务的数据库连接配置与MongoDB服务的初始化配置不匹配:本次部署中,MongoDB服务初始化配置的账号为root,密码为abc@123,但FastGPT服务的environment配置项中的MONGODB_URI直接使用了username:password作为占位符,未替换为实际的root与abc@123,导致连接时身份验证失败。此外需确认容器间网络配置是否正常,本次部署中两者已配置在同一docker网络fastgpt中,网络层面无异常。
排查步骤
- 进入docker-compose.yml文件所在的部署目录,查看fastgpt服务的environment配置项中的MONGODB_URI参数内容。
- 查看MongoDB服务的environment配置,确认MONGOINITDBROOTUSERNAME和MONGOINITDBROOTPASSWORD的实际取值。
- 对比MONGODB_URI中的
username:password部分,确认是否未替换为MongoDB服务实际配置的用户名和密码。 - 执行
docker network inspect fastgpt命令,确认FastGPT服务与MongoDB服务是否在同一docker网络中。 - 执行
docker logs fastgpt命令查看容器日志,确认是否存在数据库连接相关的报错信息。
解决与验证
解决方法
修改fastgpt服务的environment配置中的MONGODB_URI参数,将username:password替换为MongoDB服务实际配置的root账号与密码,即修改为mongodb://root:abc@123@mongo:27017/?authSource=admin。保存修改后,执行docker-compose up -d命令重启相关服务。
验证步骤
- 等待容器启动完成后,访问FastGPT的登录页面。
- 使用默认的root账号与
DEFAULT_ROOT_PSW=1234配置的密码进行登录,确认可以正常登录且无数据库连接报错。 - 再次执行
docker logs fastgpt命令查看容器日志,确认MongoDB连接日志正常,无权限相关报错。