Redash添加MongoDB报错:不支持OP_QUERY命令
Redash连接MongoDB报错“Unsupported OP_QUERY command: connectionStatus”的解决方法
问题原因
这个报错既不是单纯的连接字符串问题,也不是Redash的原生Bug,核心原因是Redash默认依赖的pymongo驱动版本过低,不兼容MongoDB 4.0及以上版本的协议——新版MongoDB移除了旧的OP_QUERY指令中的connectionStatus命令,而老版本驱动仍在使用该指令进行连接校验。
解决方案
方案一:升级Redash容器内的pymongo驱动版本(Docker部署优先推荐)
- 进入Redash的server容器(或worker容器,任选其一):
docker exec -it redash_server_1 bash - 安装兼容的pymongo版本(推荐3.12.x及以上,适配MongoDB 4.0+;MongoDB 5.0+建议升级到4.x版本):
pip install pymongo==3.12.3 - 重启Redash相关容器使变更生效:
docker-compose restart server worker scheduler
方案二:修改连接字符串指定认证机制(临时适配方案)
如果升级驱动有障碍,可尝试在连接字符串中明确指定SCRAM-SHA-1认证机制,替换原有的authMechanism=DEFAULT,同时直接指定要连接的matches数据库:
mongodb://user:pass@host:27017/matches?authMechanism=SCRAM-SHA-1
注意:需确保MongoDB服务端已启用SCRAM认证(MongoDB 3.0及以上版本默认支持)。
验证步骤
重启容器后重新测试数据源连接,若仍有问题,可检查MongoDB服务端日志确认认证请求状态,确保网络、账号权限无异常。
内容的提问来源于stack exchange,提问作者Christopher
相关产品推荐
相关产品推荐

