美文网首页我爱编程
python连接MongoDB踩过的坑

python连接MongoDB踩过的坑

作者: 克里斯托弗的梦想 | 来源:发表于2018-05-09 15:59 被阅读0次

    勤能补拙

    • 无密码无认证下连接
    from pymongo import MongoClient
    host = '10.90.10.9'   # 你的ip地址
    client = MongoClient(host, 27017)  # 建立客户端对象
    db = conn.mydb  # 连接mydb数据库,没有则自动创建
    myset = db.testset   # 使用test_set集合,没有则自动创建
    myset.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
    # 下面是遍历查询数据
    for i in myset.find():
        print(i)          
    
    • 有密码连接
    from pymongo import MongoClient
    host = '10.90.10.9'
    client = MongoClient(host, 27017)
    #连接mydb数据库,账号密码认证
    db = client.mydb    # mydb数据库,同上解释
    db.authenticate("用户名", "密码")
    collection = db.myset   # myset集合,同上解释
    collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
    

    如果上例发生错误,如 pymongo.errors.OperationFailure: auth failed

    from pymongo import MongoClient
    host = '10.90.10.9'
    client = MongoClient(host, 27017)
    #连接mydb数据库,账号密码认证
    db = client.mydb    # mydb数据库,同上解释
    db.authenticate("用户名", "密码",mechanism='MONGODB-CR') # 增加了mechanism参数,mongoDB有不同的认证机制,3.0版本以后采用的是'SCRAM-SHA-1', 之前的版本采用的是'MONGODB-CR'
    collection = db.myset   # myset集合,同上解释
    collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
    

    好吧,如果还报错,还没有解决,还有一条路可走【继续看】

    from pymongo import MongoClient
    host = '10.90.10.9'
    client = MongoClient(host, 27017)
    #连接mydb数据库,账号密码认证
    db = client.admin    # 先连接系统默认数据库admin
    # 下面一条更改是关键,我竟然尝试成功了,不知道为啥,先记录下踩的坑吧
    db.authenticate("用户名", "密码",mechanism='MONGODB-CR') # 让admin数据库去认证密码登录,好吧,既然成功了,
    my_db = client.mydb  # 再连接自己的数据库mydb
    collection = my_db.myset   # myset集合,同上解释
    collection.insert({"name":"zhangsan","age":18})   # 插入一条数据,如果没出错那么说明连接成功
    

    如果你根据上面几种方法还没解决,我也不知道了,误导误撞,有人看到能解释下为啥嘛,个人启发是通过客户端连接设置,之前客户端连接不上,更改了一下设置才连上的,如下图:


    image.png

    好吧,就是上面标红框的地方,才这样做就成功了。
    成功实例如下:


    image.png

    以下参考资料:
    https://www.cnblogs.com/melonjiang/p/6536876.html
    https://www.cnblogs.com/dplearning/p/5127869.html

    相关文章

      网友评论

        本文标题:python连接MongoDB踩过的坑

        本文链接:https://www.haomeiwen.com/subject/rctorftx.html