基于debian下的pymongo开发经历

本文详细介绍了如何通过TGZ包在Debian系统上安装MongoDB,包括下载、解压、启动mongod服务、配置文件设置,以及使用Python的pymongo库进行数据库连接和插入操作。还讨论了部署复制集服务和遇到的问题及其解决方案。
摘要由CSDN通过智能技术生成

准备

  • mongodb下载和安装:
    • 参考:通过tgz包安装:
    • 地址:https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-debian-tarball/
    • 执行命令:sudo apt-get install libcurl4 libgssapi-krb5-2 libldap-common libwrap0 libsasl2-2 libsasl2-modules libsasl2-modules-gssapi-mit openssl liblzma5 wget
    • 下载连接:wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian12-7.0.9.tgz
    • 解压文件:tar -zxvf mongodb-linux-x86_64-debian12-7.0.9.tgz
    • 解压后,能看到mongod和mongos,mongod就是mongodb的执行文件,mongos就是mongodb的分片分布式部署的连接器
  • 安装mongosh

启动mongod数据库

  • 解压mognodb的安装文件,可以看到在bin目录下有一个mongod,就是启动的执行文件
  • 创建一个开始启动的文件:start_mongo.conf
storage:
    dbPath: /home/gxxx/mongo_instance/data
    # journal:   mongo6.1已经移除了该选项,本身就是true
    #     enabled: true

systemLog:    # 设置系统的日志文件
    path: /home/gxxx/mongo_instance/log/mongo.log
    destination: file
net:   # 设置监听的端口和绑定的ip地址
    port: 6007
    bindIp: 192.168.220.138,localhost
processManagement:  # 通过守护进程的方式启动mongod
   fork: true
  • 执行mongod文件,命令是:mongod --config start_mongo.conf

    • 结果如下:
      在这里插入图片描述
  • 关闭mongod的服务

    • 注意mongod的服务只能通过localhost进行关闭
    • mongosh lcoalhost:6007
    • use admin
    • db.shutdownServer() # 即可关闭mongod的服务
  • 将mongod服务做成linux服务器的守护进程

python处理

import pymongo
# NOTE:在处理pymongo数据处理的时候可以使用多线程的处理方式,但是要注意不能让一个线程卡住太久


mongoclient = pymongo.MongoClient(host="192.168.0.138", port=27007)
print("mongoclient 连接成功", mongoclient)

db = mongoclient.test_db   # 如果没有test_db数据库,则会创建一个

user_data_db = db.user_data  # 如果没有user_data集合,则会创建一个
user_data_db.create_index("user_id", unique=True)

try:
    user_data_db.insert_one({"user_id": "11111111111", "user_name": "eee", "user_age": 18})

    # user_data = user_data_db.find_one({"user_id": "11111111111"}, {"_id":False, "user_age":False})

    # user_data = user_data_db.find_one({"user_id": "11111111111"}, { "user_name":True})
except Exception as e:
    print("db 连接失败", e)

# print("find_one:", user_data["user_name"])

print("db 连接成功", db)

部署mongos服务

  • 一台master
  • 一台config
  • 一台slave

部署复制集服务

遇到的问题

  • 1.如下的错误:在这里插入图片描述

    • 因为实在非localhost下进行mongod服务的,所有不能关闭
  • 2.如何使mongod在后台启动,而不是hang住启动进程

    • 解决方案,在start.conf文件中配置如下:
    processManagement:
       fork: true
    
    • 参考链接:https://www.mongodb.com/zh-cn/docs/manual/reference/configuration-options/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值