emqx mongodb认证不支持mongodb4.0。

环境

  • EMQX 版本:
    5.6.0
  • 操作系统版本:
    CentOS 8.2.2004 x86_64

重现此问题的步骤

MongoDB4.0 进行密码认证,无法成功接入数据源.
实验验证在保证测试环境不变,仅进行mongodb升级降级。升级MongoDB 7.0、MongoDB 4.6皆可以可正常链接。降级为4.0.10Dashboard 显示为数据源已断开。重复多次升级降级测试。结果一致

查看/var/log/emqx 日志如下

2024-04-16T13:17:03.390570+08:00 [error] Supervisor: {<0.929796.0>,ecpool_pool_sup}. Context: start_error. Reason: {shutdown,{failed_to_start_child,{worker,1},{{error,{op_msg_response,#{<<“$clusterTime”>> => #{<<“clusterTime”>> => {mongostamp,1,1713244619},<<“signature”>> => #{<<“hash”>> => {bin,bin,<<73,188,197,69,100,177,143,52,126,37,48,181,112,249,175,84,30,141,25,239>>},<<“keyId”>> => 7341261941194620929}},<<“code”>> => 59,<<“codeName”>> => <<“CommandNotFound”>>,<<“errmsg”>> => <<“no such command: ‘hello’”>>,<<“ok”>> => 0.0,<<“operationTime”>> => {mongostamp,1,1713244619}}}},[{mc_connection_man,op_msg_raw_result,2,[{file,“mc_connection_man.erl”},{line,59}]},{mc_worker_api,command,2,[{file,“mc_worker_api.erl”},{line,375}]},{mc_topology_logics,validate_server_and_config,3,[{file,“mc_topology_logics.erl”},{line,140}]},{mc_topology,init,1,[{file,“mc_topology.erl”},{line,68}]},{gen_server,init_it,2,[{file,“gen_server.erl”},{line,980}]},{gen_server,init_it,6,[{file,“gen_server.erl”},{line,935}]},{proc_lib,init_p_do_apply,3,[{file,“proc_lib.erl”},{line,241}]}]}}}. Offender: id=worker_sup,pid=undefined.

What did you expect to happen?

希望能解决此问题,我们对接的服务只有MongoDB4.0版本

感谢反馈,看起来是 EMQX 所使用的 MongoDB Driver 不支持 4.0 导致的。

我们内部会进行跟踪,如果有更新会及时回复到这里

希望能尽快支持,我们用的云平台只有4.0版本的MONGOdb,之前一直用的EMQX4.x版本是好的,我们现在把emqx升级到了5.6出问题了很麻烦。业务也有受影响