兼容pymongo=4.16版本如何安装mongodb

目录

[1. 停止并卸载旧版本](#1. 停止并卸载旧版本)

问题:

解决方案:

[2. 下载并安装新版 MongoDB (推荐 4.4)](#2. 下载并安装新版 MongoDB (推荐 4.4))

[3. 创建必要的目录并赋予权限](#3. 创建必要的目录并赋予权限)

​编辑

4.创建mongodb.conf文件

创建配置文件

关键配置说明

[5. vi /etc/profile 命令打开系统文件,并在末尾加入以下内容后保存,最后使用 source /etc/profile 命令重启系统配置。](#5. vi /etc/profile 命令打开系统文件,并在末尾加入以下内容后保存,最后使用 source /etc/profile 命令重启系统配置。)

6.启动验证

7.开机自启动(自选)

7.1启动重启停止服务

[8. 最后一步:重建用户](#8. 最后一步:重建用户)

[9. 验证](#9. 验证)


直接给出明确结论:直接彻底删除旧的 MongoDB 文件夹即可,千万不要保留或移动到新版本里(因为旧版本的二进制文件和配置可能与新版本冲突)。

你可以直接在终端执行以下命令来清理环境并安装新版本:

1. 停止并卸载旧版本

复制代码
# 如果之前配置了服务,先停止它
sudo systemctl stop mongod 

# 找到旧的安装目录并彻底删除(根据你之前的教程,通常在 /usr/local)
sudo rm -rf /usr/local/mongodb
问题:
解决方案:

需要执行命令kill -9 23176

2. 下载并安装新版 MongoDB (推荐 4.4)

由于你的 PyMongo 需要 Wire你的 PyMongo 需要 Wi Version >= 8,我们直接安装更稳定且广泛兼容的 MongoDB 4.4

复制代码
# 直接在~目录下就可以,那一块空间大,你下载到哪一个目录

# 下载 MongoDB 4.4 (CentOS/RHEL 7 适用)
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.28.tgz

# 解压
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.28.tgz

# 移动并重命名到原来的位置
sudo mv mongodb-linux-x86_64-rhel70-4.4.28 /usr/local/mongodb

3. 创建必要的目录并赋予权限

复制代码
cd /usr/local/mongodb
mkdir -p data/db data/log

# 开放读写权限(测试环境图省事可以直接用777,生产环境建议用 chown 指定用户)
sudo chmod 777 data/db data/log

4.创建mongodb.conf文件

目的是启动mongodb

现在需要创建一个标准的 mongodb.conf 配置文件。MongoDB 4.0+ 版本推荐使用 YAML 格式配置。以下是为你准备的通用配置模板及操作步骤:

创建配置文件

在你的 MongoDB 安装目录下(通常是 /usr/local/mongodb/)创建文件:

复制代码
vi /usr/local/mongodb/mongodb.conf

将以下内容复制进去。注意:YAML 格式对缩进非常敏感,请勿使用 Tab 键,必须使用空格。

复制代码
# 数据库文件存放路径
storage:
  dbPath: /usr/local/mongodb/data/db
  journal:
    enabled: true

# 系统日志配置
systemLog:
  destination: file
  logAppend: true
  path: /usr/local/mongodb/data/log/mongod.log

# 网络配置
net:
  port: 27017
  bindIp: 0.0.0.0  # 允许所有IP连接(开发环境用),生产环境建议改为 127.0.0.1

# 进程管理
processManagement:
  fork: true  # 后台运行
  pidFilePath: /usr/local/mongodb/data/log/mongod.pid

# 安全配置(可选,初期可先注释掉,测试连通后再开启)
# security:
#   authorization: enabled
关键配置说明
  • dbPath :对应你之前创建的 data/db 目录,这是数据实际存储的地方。
  • bindIp :设置为 0.0.0.0 表示允许远程连接(例如你的 Python 代码在另一台机器或 Docker 中)。如果只在本机运行,改为 127.0.0.1 更安全。
  • fork :设置为 true 让 MongoDB 在后台运行,不会占用当前的终端窗口。

5. vi /etc/profile 命令打开系统文件,并在末尾加入以下内容后保存,最后使用 source /etc/profile 命令重启系统配置。

bash 复制代码
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

6.启动验证

保存文件后,使用以下命令启动服务:

bash 复制代码
# /usr/local/mongodb/bin/mongod --config /usr/local/mongodb/mongodb.conf
mongod --config /usr/local/mongodb/mongodb.conf

看到 about to fork child process, waiting until server is ready for connections. 且没有报错,即表示启动成功。

7.开机自启动(自选)

使用 vi /lib/systemd/system/mongodb.service 命令新建开机启动配置文件,输入以下内容保存。

复制代码
[Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
[Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf --shutdown
    PrivateTmp=true
[Install]
    WantedBy=multi-user.target
7.1启动重启停止服务
bash 复制代码
systemctl start mongodb.service
systemctl restart mongodb.service
systemctl stop mongodb.service

8. 最后一步:重建用户

因为没有数据,你需要重新进入数据库创建你的 zzm 用户。在终端运行:

复制代码
/usr/local/mongodb/bin/mongo

然后在 mongo shell 中依次执行:

复制代码
use erp
db.createUser({
  user: "zzm",
  pwd: "123456",
  roles: [ { role: "readWrite", db: "erp" } ]
})

9. 验证

使用安装目录下 bin 目录的 mongo 客户端命令连接和访问 MongoDB,默认会链接到 test 数据库。

bash 复制代码
mongo
MongoDB shell version v4.4.28
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b5cb3a40-929e-41a0-b8c5-01d84a12f479") }
MongoDB server version: 4.4.28
---
The server generated these startup warnings when booting: 
        2026-06-02T16:32:12.866+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
        2026-06-02T16:32:12.867+08:00: You are running this process as the root user, which is not recommended
        2026-06-02T16:32:12.870+08:00: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. We suggest setting it to 'never'
        2026-06-02T16:32:12.871+08:00: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. We suggest setting it to 'never'
        2026-06-02T16:32:12.871+08:00: Soft rlimits too low
        2026-06-02T16:32:12.871+08:00:         currentValue: 1024
        2026-06-02T16:32:12.871+08:00:         recommendedMinimum: 64000
---

以上就是全部的流程

相关推荐
念恒123061 小时前
MySQL连接池原理与简易网站数据流动是如何进行的
数据库·mysql
宇砾1 小时前
浅谈Redis(2)
数据库·redis·缓存
cfm_29142 小时前
Redis Stack 零基础入门
数据库·redis·缓存
海南java第二人2 小时前
ClickHouse 列式存储深度解析:优点、缺点与选型实战
数据库·clickhouse
李白客2 小时前
MySQL迁移操作手册:一次完整迁移的实战路径
数据库·mysql
晴天¥2 小时前
Oracle 19c RAC修改监听默认端口
数据库·oracle
皮卡祺q2 小时前
【redis1】基本指令,五大数据类型,存储优化,使用场景】
数据库·redis·缓存
杜子不疼.3 小时前
Agent Skills 的演进治理与 Swarm Skills 自演进
服务器·数据库·microsoft
wanghowie3 小时前
26.v3 核心升级:语义层 + 指标体系——禁止 LLM 直连 SQL
数据库·sql