首页 新闻 搜索 专区 学院

MongoDB采用samus 驱动,加了用户名及密码,但认证总是失败,求解!

0
悬赏园豆:5 [已解决问题] 解决于 2017-08-17 14:36
        public string MongoDBFirstTest()
        {

            var mgConnStrBuilder = new MongoConnectionStringBuilder();
            mgConnStrBuilder.Username = "root";
            mgConnStrBuilder.Password = "xxxx";
            mgConnStrBuilder.AddServer("localhost");
            mgConnStrBuilder.Database = "Zuowjdb";

            //链接字符串
            string connectionString = mgConnStrBuilder.ToString(); //"mongodb://root:xxxx@localhost/Zuowjdb";

            //数据库名
            string databaseName = "Zuowjdb";

            //集合名
            string collectionName = "Test";


            //定义Mongo服务
            Mongo mongo = new Mongo(connectionString);

            //链接数据库
            mongo.Connect();

            //获取databaseName对应的数据库,不存在则自动创建
            MongoDatabase mongoDatabase = mongo.GetDatabase(databaseName) as MongoDatabase;

            //获取collectionName对应的集合,不存在则自动创建
            MongoCollection<Document> mongoCollection = mongoDatabase.GetCollection<Document>(collectionName) as MongoCollection<Document>;
            
            try
            {
                //定义一个文档对象,存入两个键值对
                Document doc = new Document();
                doc["ID"] = 1;
                doc["Msg"] = "Hello MongoDB!";

                //将这个文档对象插入集合
                mongoCollection.Insert(doc);

                //在集合中查找键值对为ID=1的文档对象
                //Document docFind = mongoCollection.FindOne(new Document { { "ID", 1 } });

                //输出查找到的文档对象中键“Msg”对应的值,并输出
                // return docFind["Msg"].ToString();

                var docfinds = mongoCollection.Find(new { ID = 1 });
                string result = null;
                foreach (var item in docfinds.Documents)
                {
                    result += item.Get("Msg") + ",";
                }
                mongoCollection.Remove(new { ID = 1 });
                return result;
            }
            finally
            {
                //关闭链接
                mongo.Disconnect();
            }
        }

如上代码,运行到mongoCollection.Insert(doc);就报Authentication faild for root,即认证失败,我在mongodb客户端上试了一下,是OK的,截图如下:

求解啊!难道非要用官方的.NET 驱动吗?

梦在旅途的主页 梦在旅途 | 初学一级 | 园豆:10
提问于:2017-08-14 18:50
< >
分享
最佳答案
0

samus 驱动应该好久没有更新了吧,况且mongodb已经更新了好多版本了,而且官方里面的驱动推荐里面已经没有它了,所以还是用官方的驱动吧,兼容的mongodb版本更广

收获园豆:5
_Ares | 菜鸟二级 |园豆:231 | 2017-08-15 12:52

经确认,确实Samus对于身份验证无法通过,只能使用官方的驱动,谢谢你的提醒。

梦在旅途 | 园豆:10 (初学一级) | 2017-08-17 14:36
其他回答(1)
0

对不齐,我用的是官方驱动

猝不及防 | 园豆:2527 (老鸟四级) | 2017-08-15 17:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册