MongoDB安装与配置 #

一、安装准备 #

1.1 系统要求 #

平台 最低要求
Windows Windows 10/Server 2016+
Linux Ubuntu 18.04+, CentOS 7+
macOS macOS 10.14+

1.2 硬件要求 #

组件 最低配置 推荐配置
CPU 2核 4核+
内存 4GB 8GB+
磁盘 10GB SSD 50GB+

二、Windows安装 #

2.1 下载安装包 #

text
1. 访问官网下载页面
   https://www.mongodb.com/try/download/community

2. 选择版本
   - Version: 7.0.x (当前稳定版)
   - Platform: Windows
   - Package: msi

3. 下载安装包
   mongodb-windows-x86_64-7.0.x.msi

2.2 安装步骤 #

text
步骤1:运行安装程序
┌─────────────────────────────────────┐
│     MongoDB Setup Wizard            │
│                                     │
│  Welcome to MongoDB Setup Wizard    │
│                                     │
│  [Next]    [Cancel]                 │
└─────────────────────────────────────┘

步骤2:接受许可协议
┌─────────────────────────────────────┐
│  End-User License Agreement         │
│                                     │
│  ☑ I accept the terms in the       │
│    License Agreement                │
│                                     │
│  [Next]    [Cancel]                 │
└─────────────────────────────────────┘

步骤3:选择安装类型
┌─────────────────────────────────────┐
│  Choose Setup Type                  │
│                                     │
│  ○ Complete (推荐)                  │
│  ○ Custom                           │
│                                     │
│  [Next]    [Cancel]                 │
└─────────────────────────────────────┘

步骤4:选择服务配置
┌─────────────────────────────────────┐
│  Service Configuration              │
│                                     │
│  ☑ Install MongoDB as a Service    │
│                                     │
│  Service Name: MongoDB              │
│  Data Directory: C:\data\db         │
│  Log Directory: C:\data\log         │
│                                     │
│  [Next]    [Cancel]                 │
└─────────────────────────────────────┘

步骤5:安装
┌─────────────────────────────────────┐
│  Ready to install MongoDB           │
│                                     │
│  [Install]  [Back]    [Cancel]      │
└─────────────────────────────────────┘

2.3 环境变量配置 #

powershell
# 1. 添加MongoDB到系统PATH
# 右键"此电脑" → 属性 → 高级系统设置 → 环境变量
# 在Path中添加:C:\Program Files\MongoDB\Server\7.0\bin

# 2. 验证安装
mongod --version
text
db version v7.0.x
Build Info: ...

2.4 启动MongoDB #

powershell
# 方式1:作为Windows服务启动
net start MongoDB

# 方式2:命令行启动
mongod --dbpath C:\data\db

# 连接MongoDB
mongosh

三、Linux安装 #

3.1 Ubuntu安装 #

bash
# 1. 导入MongoDB公钥
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

# 2. 添加MongoDB源
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | \
   sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

# 3. 更新包索引
sudo apt-get update

# 4. 安装MongoDB
sudo apt-get install -y mongodb-org

# 5. 启动MongoDB
sudo systemctl start mongod
sudo systemctl enable mongod

# 6. 验证状态
sudo systemctl status mongod

3.2 CentOS/RHEL安装 #

bash
# 1. 创建MongoDB源文件
sudo cat > /etc/yum.repos.d/mongodb-org-7.0.repo << EOF
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc
EOF

# 2. 安装MongoDB
sudo yum install -y mongodb-org

# 3. 启动MongoDB
sudo systemctl start mongod
sudo systemctl enable mongod

# 4. 验证状态
sudo systemctl status mongod

3.3 配置SELinux(CentOS) #

bash
# 检查SELinux状态
sestatus

# 如果启用,需要配置策略
# 方式1:设置为宽容模式(开发环境)
sudo setenforce 0

# 方式2:配置SELinux策略(生产环境)
# 确保数据目录有正确的上下文
sudo semanage fcontext -a -t mongod_var_lib_t "/data/mongodb(/.*)?"
sudo restorecon -Rv /data/mongodb

四、macOS安装 #

4.1 使用Homebrew安装 #

bash
# 1. 更新Homebrew
brew update

# 2. 添加MongoDB tap
brew tap mongodb/brew

# 3. 安装MongoDB
brew install mongodb-community@7.0

# 4. 启动MongoDB服务
brew services start mongodb-community@7.0

# 5. 验证安装
mongod --version

4.2 手动安装 #

bash
# 1. 下载安装包
curl -O https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-7.0.tgz

# 2. 解压
tar -zxvf mongodb-macos-x86_64-7.0.tgz

# 3. 移动到目标目录
sudo mv mongodb-macos-x86_64-7.0 /usr/local/mongodb

# 4. 创建数据目录
sudo mkdir -p /data/db
sudo chown -R $(whoami) /data/db

# 5. 配置环境变量
echo 'export PATH=/usr/local/mongodb/bin:$PATH' >> ~/.zshrc
source ~/.zshrc

# 6. 启动MongoDB
mongod --dbpath /data/db

五、Docker安装 #

5.1 单节点部署 #

bash
# 1. 拉取镜像
docker pull mongo:7.0

# 2. 运行容器
docker run -d \
    --name mongodb \
    -p 27017:27017 \
    -v mongodb_data:/data/db \
    -v mongodb_config:/data/configdb \
    -e MONGO_INITDB_ROOT_USERNAME=admin \
    -e MONGO_INITDB_ROOT_PASSWORD=password123 \
    mongo:7.0

# 3. 连接MongoDB
docker exec -it mongodb mongosh -u admin -p password123

5.2 Docker Compose部署 #

yaml
# docker-compose.yml
version: '3.8'

services:
  mongodb:
    image: mongo:7.0
    container_name: mongodb
    restart: always
    ports:
      - "27017:27017"
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: password123
      MONGO_INITDB_DATABASE: admin
    volumes:
      - mongodb_data:/data/db
      - mongodb_config:/data/configdb
      - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro

volumes:
  mongodb_data:
  mongodb_config:
javascript
// init-mongo.js
db = db.getSiblingDB('mydb')

db.createUser({
    user: 'appuser',
    pwd: 'apppassword',
    roles: [
        { role: 'readWrite', db: 'mydb' }
    ]
})

db.createCollection('users')
bash
# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f mongodb

# 停止服务
docker-compose down

六、配置文件详解 #

6.1 配置文件位置 #

平台 默认位置
Windows C:\Program Files\MongoDB\Server\7.0\bin\mongod.cfg
Linux /etc/mongod.conf
macOS /usr/local/etc/mongod.conf

6.2 配置文件示例 #

yaml
# mongod.conf

# 存储配置
storage:
  dbPath: /data/db
  journal:
    enabled: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1
      journalCompressor: snappy
    collectionConfig:
      blockCompressor: snappy
    indexConfig:
      prefixCompression: true

# 系统日志配置
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
  verbosity: 0
  component:
    accessControl:
      verbosity: 0
    command:
      verbosity: 0

# 网络配置
net:
  port: 27017
  bindIp: 127.0.0.1
  maxIncomingConnections: 65536
  wireObjectCheck: true
  ipv6: false

# 进程管理
processManagement:
  fork: true
  pidFilePath: /var/run/mongodb/mongod.pid

# 安全配置
security:
  authorization: enabled
  keyFile: /etc/mongodb/keyfile

# 复制集配置
replication:
  replSetName: rs0
  oplogSizeMB: 1024

# 分片配置
sharding:
  clusterRole: shardsvr

# 性能配置
setParameter:
  enableLocalhostAuthBypass: false
  logicalSessionTimeoutMinutes: 30

6.3 常用配置参数 #

参数 说明 默认值
storage.dbPath 数据存储路径 /data/db
systemLog.path 日志文件路径 /var/log/mongodb/mongod.log
net.port 监听端口 27017
net.bindIp 绑定IP 127.0.0.1
security.authorization 启用认证 disabled
replication.replSetName 复制集名称 -

七、启动与停止 #

7.1 启动MongoDB #

bash
# 方式1:使用配置文件
mongod -f /etc/mongod.conf
mongod --config /etc/mongod.conf

# 方式2:命令行参数
mongod --dbpath /data/db --logpath /var/log/mongodb/mongod.log --fork

# 方式3:systemd(Linux)
sudo systemctl start mongod

# 方式4:Windows服务
net start MongoDB

7.2 停止MongoDB #

bash
# 方式1:使用mongo shell
mongosh --eval "db.adminCommand({ shutdown: 1 })"

# 方式2:systemd(Linux)
sudo systemctl stop mongod

# 方式3:Windows服务
net stop MongoDB

# 方式4:发送信号
kill -SIGTERM <pid>

7.3 重启MongoDB #

bash
# Linux
sudo systemctl restart mongod

# Windows
net stop MongoDB && net start MongoDB

八、连接MongoDB #

8.1 使用Mongosh #

bash
# 连接本地MongoDB
mongosh

# 连接指定主机和端口
mongosh --host localhost --port 27017

# 连接字符串
mongosh "mongodb://localhost:27017"

# 带认证连接
mongosh "mongodb://admin:password@localhost:27017/admin"

# 连接MongoDB Atlas
mongosh "mongodb+srv://cluster0.example.mongodb.net/mydb" --username admin

8.2 连接字符串格式 #

text
标准连接字符串
mongodb://[username:password@]host1[:port1][,host2[:port2],...]/[database][?options]

DNS种子列表连接字符串
mongodb+srv://[username:password@]host/[database][?options]

参数说明:

参数 说明
username 用户名
password 密码
host 主机地址
port 端口号
database 数据库名
options 连接选项

常用选项:

选项 说明
replicaSet 复制集名称
readPreference 读偏好
writeConcern 写关注
authSource 认证数据库
ssl 启用SSL
tls 启用TLS

8.3 连接示例 #

bash
# 复制集连接
mongosh "mongodb://host1:27017,host2:27017,host3:27017/mydb?replicaSet=rs0"

# 读偏好设置
mongosh "mongodb://localhost:27017/mydb?readPreference=secondary"

# 启用TLS
mongosh "mongodb://localhost:27017/mydb?tls=true"

# 完整连接字符串
mongosh "mongodb://admin:password@cluster0-shard-00.mongodb.net:27017,cluster0-shard-01.mongodb.net:27017,cluster0-shard-02.mongodb.net:27017/mydb?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin"

九、验证安装 #

9.1 检查服务状态 #

bash
# Linux
sudo systemctl status mongod

# macOS
brew services list

# Windows
sc query MongoDB

9.2 检查版本 #

bash
# 服务端版本
mongod --version

# 客户端版本
mongosh --version

9.3 测试连接 #

javascript
// 连接MongoDB
mongosh

// 测试命令
> db.version()
7.0.x

> db.runCommand({ ping: 1 })
{ ok: 1 }

> db.stats()
{
    db: 'test',
    collections: 0,
    views: 0,
    objects: 0,
    ...
}

十、常见问题 #

10.1 无法启动 #

bash
# 检查日志
tail -f /var/log/mongodb/mongod.log

# 常见原因
# 1. 数据目录权限问题
sudo chown -R mongodb:mongodb /data/db

# 2. 端口被占用
sudo lsof -i :27017
sudo kill -9 <pid>

# 3. 数据文件损坏
mongod --repair --dbpath /data/db

10.2 连接被拒绝 #

bash
# 检查MongoDB是否运行
sudo systemctl status mongod

# 检查绑定地址
# 修改mongod.conf中的bindIp
net:
  bindIp: 0.0.0.0  # 允许所有IP连接

# 检查防火墙
sudo ufw allow 27017
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload

10.3 权限问题 #

bash
# 创建数据目录
sudo mkdir -p /data/db
sudo chown -R $(whoami) /data/db

# 或使用mongodb用户
sudo chown -R mongodb:mongodb /data/db

十一、总结 #

安装要点:

平台 推荐方式
Windows MSI安装包
Linux 包管理器
macOS Homebrew
开发环境 Docker

配置要点:

  1. 正确设置数据目录权限
  2. 配置日志文件路径
  3. 根据需求调整内存配置
  4. 生产环境启用认证

下一步,让我们学习MongoDB基础语法!

最后更新:2026-03-27