您的位置:首页 > 数据库 > Mongodb

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

2016-10-10 17:54 489 查看
背景:

本码农维护的代码,需要从未鉴权的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb c++ BUG
相关文章推荐