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 |
配置要点:
- 正确设置数据目录权限
- 配置日志文件路径
- 根据需求调整内存配置
- 生产环境启用认证
下一步,让我们学习MongoDB基础语法!
最后更新:2026-03-27