K8s环境下Mongo-express连接MongoDB失败问题咨询
错误根因
你遇到的连接串异常完全来自ME_CONFIG_MONGODB_SERVER环境变量的配置不符合Mongo-express的参数要求:
- Mongo-express的
ME_CONFIG_MONGODB_SERVER参数仅接收MongoDB的主机地址/服务名,不需要携带mongodb://协议前缀,也不需要携带端口号。你当前ConfigMaplc-configmap中的DATABASE_URL值应该是mongodb://lc-mongodb-service:27017这类完整格式,Mongo-express内部自动拼接连接串时会默认添加mongodb://前缀和27017端口,最终就出现了你日志里重复前缀、重复端口的错误连接串。 - 如果你需要自定义MongoDB端口,需要单独配置
ME_CONFIG_MONGODB_PORT环境变量,不能直接把端口写在ME_CONFIG_MONGODB_SERVER的取值里。
修复步骤
- 修改ConfigMap
lc-configmap的DATABASE_URL取值,仅保留MongoDB的Service名称即可:
修改前(错误值示例):mongodb://lc-mongodb-service:27017
修改后(正确值):lc-mongodb-service - (可选)如果你的MongoDB使用非27017端口,在Mongo-express的Deployment环境变量中新增端口配置:
- name: ME_CONFIG_MONGODB_PORT value: "你的MongoDB自定义端口"
- (建议添加)避免认证失败,补充MongoDB认证数据库配置,在Mongo-express的Deployment环境变量中新增:
- name: ME_CONFIG_MONGODB_AUTH_DATABASE value: "admin"
修改完成后重新apply ConfigMap和Mongo-express Deployment即可正常连接。
内容的提问来源于stack exchange,提问作者Israel
相关产品推荐
相关产品推荐

