【解决问题】c++: mongodb SCRAM-SHA-1 mechanism support not compiled into client library 错误的解决

背景:

本码农维护的代码,需要从未鉴权的mongodb  迁移到 带鉴权的 mongodb,开始了2~3天的煎熬,总算搞定了,留下点纪念。


版本:

mongodb 3.0.x

mongo-cxx-driver-legacy-1.1.0

编译器: c++11


直接使用驱动的鉴权函数 auth(), 结果报  mongodb SCRAM-SHA-1 mechanism support not compiled into client library. (Some mechanisms require the driver be compiled with the flags --ssl or --use-sasl-client) 这个异常。

如果你就按照提示的这段信息去做,你就被坑了,别问我为什么知道

真实情况是,mongodb的驱动需要初始化,不初始化就会报这个错误,这该死的提示信息。做法如下:

在使用之前调用  mongo::client::initialize();   一次即可,不用重复初始化。

把特~~你以为这就结束了?

我的调用 mongo 初始化函数之后就挂了~~~

最后查出来了原因,需要在 mongo-cxx-driver-legacy-1.1.0 编译的时候加 --c++11=on  选项。

OK 都搞定了。

用的时候,记得每次调用 connect() 之后都要 auth() 一下


参考链接

https://stackoverflow.com/questions/28448406/the-authentication-mechanism-scram-sha-1-is-not-supported

http://stackoverflow.com/questions/30107966/mongoclientoptionsoptions-at-options-h32

发布了5 篇原创文章 · 获赞 0 · 访问量 5427
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览