准备
- 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
- 通过tgz包安装
- 地址:https://www.mongodb.com/docs/mongodb-shell/install/
启动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/