外观
MongoDB macOS 安装指南
在macOS上安装MongoDB有多种方法,包括使用Homebrew包管理器、手动下载安装包和使用Docker容器。本文将详细介绍这些安装方法的步骤和最佳实践。
系统要求
在安装MongoDB之前,需要确保你的macOS系统满足以下要求:
- macOS 10.15 (Catalina) 或更高版本
- 至少4GB RAM
- 至少10GB可用磁盘空间
- 64位处理器
安装方法
1. 使用Homebrew安装(推荐)
Homebrew是macOS上的包管理器,使用它可以方便地安装和管理MongoDB。
步骤1:更新Homebrew
bash
brew update步骤2:安装MongoDB
bash
# 安装最新稳定版
brew install mongodb-community
# 安装特定版本
brew install mongodb-community@6.0步骤3:启动MongoDB服务
bash
# 启动MongoDB服务
brew services start mongodb-community
# 或者手动启动(不推荐用于生产环境)
mongod --config /usr/local/etc/mongod.conf --fork步骤4:验证安装
bash
# 连接到MongoDB
mongosh
# 查看MongoDB版本
db.version()步骤5:停止MongoDB服务
bash
# 停止MongoDB服务
brew services stop mongodb-community
# 或者手动停止
mongosh --eval "db.adminCommand({ shutdown: 1 })"2. 手动安装
如果不想使用Homebrew,也可以手动下载MongoDB安装包进行安装。
步骤1:下载MongoDB安装包
访问MongoDB官方下载页面:https://www.mongodb.com/try/download/community
选择适合你macOS版本的安装包(tgz格式),或使用curl命令下载:
bash
# 下载MongoDB 6.0.5版本(根据需要替换版本号)
curl -O https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-6.0.5.tgz步骤2:解压安装包
bash
# 解压安装包
tar -zxvf mongodb-macos-x86_64-6.0.5.tgz
# 重命名目录
mv mongodb-macos-x86_64-6.0.5 mongodb
# 将MongoDB移动到/usr/local目录
sudo mv mongodb /usr/local/步骤3:配置环境变量
编辑你的shell配置文件(~/.bash_profile或~/.zshrc),添加MongoDB到PATH:
bash
# 打开配置文件
nano ~/.zshrc
# 添加以下内容
export PATH="/usr/local/mongodb/bin:$PATH"
# 保存并退出,然后刷新配置
source ~/.zshrc步骤4:创建数据目录和日志目录
bash
# 创建数据目录
sudo mkdir -p /usr/local/var/mongodb
# 创建日志目录
sudo mkdir -p /usr/local/var/log/mongodb
# 设置目录权限
sudo chown -R $(whoami) /usr/local/var/mongodb
sudo chown -R $(whoami) /usr/local/var/log/mongodb步骤5:创建配置文件
bash
# 创建配置文件目录
sudo mkdir -p /usr/local/etc
# 创建配置文件
nano /usr/local/etc/mongod.conf添加以下配置内容:
yaml
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
port: 27017
processManagement:
fork: true步骤6:启动MongoDB
bash
# 使用配置文件启动MongoDB
mongod --config /usr/local/etc/mongod.conf步骤7:验证安装
bash
# 连接到MongoDB
mongosh
# 查看MongoDB版本
db.version()3. 使用Docker安装
对于开发和测试环境,使用Docker安装MongoDB是一个便捷的选择。
步骤1:安装Docker
如果尚未安装Docker,请从Docker官网下载并安装:https://www.docker.com/products/docker-desktop
步骤2:拉取MongoDB镜像
bash
# 拉取最新稳定版镜像
docker pull mongo:latest
# 拉取特定版本镜像
docker pull mongo:6.0.5步骤3:运行MongoDB容器
bash
# 运行MongoDB容器
docker run -d \
--name mongodb \
-p 27017:27017 \
-v ~/mongodb-data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password \
mongo:latest参数说明:
-d:在后台运行容器--name mongodb:容器名称-p 27017:27017:映射容器端口到主机-v ~/mongodb-data:/data/db:挂载数据卷-e MONGO_INITDB_ROOT_USERNAME:设置 root 用户名-e MONGO_INITDB_ROOT_PASSWORD:设置 root 密码
步骤4:连接到MongoDB容器
bash
# 连接到MongoDB容器
docker exec -it mongodb mongosh -u admin -p password --authenticationDatabase admin
# 查看MongoDB版本
db.version()步骤5:停止和删除容器
bash
# 停止容器
docker stop mongodb
# 删除容器
docker rm mongodb配置MongoDB
1. 配置文件
MongoDB的配置文件包含了各种运行参数,默认位置取决于安装方法:
- Homebrew安装:
/usr/local/etc/mongod.conf - 手动安装:
/usr/local/etc/mongod.conf - Docker安装:容器内
/etc/mongod.conf
2. 常用配置参数
以下是一些常用的MongoDB配置参数:
yaml
# 系统日志配置
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
verbosity: 0
# 存储配置
storage:
dbPath: /usr/local/var/mongodb
journal:
enabled: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 2
# 网络配置
net:
bindIp: 127.0.0.1
port: 27017
maxIncomingConnections: 65536
# 进程管理配置
processManagement:
fork: true
pidFilePath: /usr/local/var/run/mongodb/mongod.pid
# 安全配置
security:
authorization: enabled3. 启用身份验证
默认情况下,MongoDB不启用身份验证。在生产环境中,建议启用身份验证:
步骤1:创建管理员用户
bash
# 连接到MongoDB
mongosh
# 切换到admin数据库
use admin
# 创建管理员用户
db.createUser({
user: "admin",
pwd: "password",
roles: [{ role: "root", db: "admin" }]
})步骤2:启用身份验证
编辑MongoDB配置文件,添加以下内容:
yaml
security:
authorization: enabled步骤3:重启MongoDB服务
bash
# Homebrew安装
brew services restart mongodb-community
# 手动安装
mongosh --eval "db.adminCommand({ shutdown: 1 })"
mongod --config /usr/local/etc/mongod.conf --fork步骤4:使用身份验证连接
bash
# 使用用户名和密码连接
mongosh -u admin -p password --authenticationDatabase admin验证安装
安装完成后,需要验证MongoDB是否正常运行:
1. 检查MongoDB服务状态
bash
# Homebrew安装
brew services list
# 手动安装
ps aux | grep mongod
# Docker安装
docker ps2. 连接测试
bash
# 连接到MongoDB
mongosh
# 执行简单命令
db.test.insertOne({ message: "Hello, MongoDB!" })
db.test.find()3. 查看日志
bash
# 查看MongoDB日志
# Homebrew安装
tail -f /usr/local/var/log/mongodb/mongo.log
# Docker安装
docker logs -f mongodb不同MongoDB版本的安装差异
MongoDB 6.0+
- 引入了原生时间序列集合
- 支持因果一致性会话
- 改进了查询计划缓存
- 增强了分片集群的性能
MongoDB 5.0
- 引入了原生的文档级时间点恢复
- 支持实时数据湖
- 改进了变更流
- 增强了安全特性
MongoDB 4.4
- 引入了跳表索引
- 支持混合分片键
- 改进了聚合管道
- 增强了复制集的性能
升级MongoDB
1. Homebrew升级
bash
# 更新Homebrew
brew update
# 升级MongoDB
brew upgrade mongodb-community
# 重启MongoDB服务
brew services restart mongodb-community2. 手动升级
- 下载新版本的MongoDB安装包
- 停止当前MongoDB服务
- 替换旧版本的二进制文件
- 启动新版本的MongoDB服务
- 运行
db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })升级功能兼容性版本
3. Docker升级
bash
# 停止并删除旧容器
docker stop mongodb
docker rm mongodb
# 拉取新版本镜像
docker pull mongo:6.0.5
# 运行新版本容器
docker run -d \
--name mongodb \
-p 27017:27017 \
-v ~/mongodb-data:/data/db \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password \
mongo:6.0.5卸载MongoDB
1. Homebrew卸载
bash
# 停止MongoDB服务
brew services stop mongodb-community
# 卸载MongoDB
brew uninstall mongodb-community
# 删除数据和日志目录
rm -rf /usr/local/var/mongodb
rm -rf /usr/local/var/log/mongodb
rm /usr/local/etc/mongod.conf2. 手动卸载
bash
# 停止MongoDB服务
mongosh --eval "db.adminCommand({ shutdown: 1 })"
# 删除MongoDB目录
rm -rf /usr/local/mongodb
# 删除数据和日志目录
rm -rf /usr/local/var/mongodb
rm -rf /usr/local/var/log/mongodb
# 删除配置文件
rm /usr/local/etc/mongod.conf
# 从环境变量中移除MongoDB
# 编辑 ~/.zshrc 或 ~/.bash_profile,删除相关行3. Docker卸载
bash
# 停止和删除容器
docker stop mongodb
docker rm mongodb
# 删除镜像
docker rmi mongo:latest
# 删除数据卷
rm -rf ~/mongodb-data常见问题(FAQ)
Q1: 安装后无法启动MongoDB服务,提示端口被占用
A1: 可能是端口27017已被其他进程占用。可以使用以下命令查看并终止占用端口的进程:
bash
# 查看占用27017端口的进程
lsof -i :27017
# 终止进程(替换PID为实际进程ID)
kill -9 PIDQ2: 使用Homebrew安装MongoDB时提示"No available formula with the name 'mongodb'"
A2: 从MongoDB 4.4开始,Homebrew将MongoDB迁移到了自己的tap中。使用以下命令安装:
bash
brew install mongodb-communityQ3: 连接MongoDB时提示"Authentication failed"
A3: 可能是用户名或密码错误,或者没有使用正确的认证数据库。确保使用正确的用户名、密码和认证数据库:
bash
mongosh -u admin -p password --authenticationDatabase adminQ4: 如何查看MongoDB的安装路径?
A4: 可以使用以下命令查看MongoDB的安装路径:
bash
# Homebrew安装
which mongod
# 手动安装
echo $PATH | grep mongodb
# Docker安装
docker inspect mongodb | grep -i pathQ5: 如何在macOS上安装多个MongoDB版本?
A5: 可以使用Homebrew的版本管理功能或Docker来安装多个版本:
bash
# 使用Homebrew安装特定版本
brew install mongodb-community@5.0
brew install mongodb-community@6.0
# 切换版本
brew services stop mongodb-community@6.0
brew services start mongodb-community@5.0Q6: MongoDB在macOS上的性能如何优化?
A6: 可以从以下几个方面优化MongoDB在macOS上的性能:
- 调整wiredTigerCacheSizeGB参数,根据系统内存大小设置
- 使用SSD存储
- 关闭不必要的服务
- 优化查询,创建合适的索引
- 调整系统的ulimit参数
Q7: 如何在macOS上配置MongoDB作为系统服务自动启动?
A7: 使用Homebrew安装的MongoDB会自动配置为系统服务,使用以下命令设置自动启动:
bash
brew services start mongodb-communityQ8: 如何迁移MongoDB数据到新的安装?
A8: 可以使用以下步骤迁移数据:
- 停止旧的MongoDB服务
- 复制数据目录到新的位置
- 启动新的MongoDB服务,指向新的数据目录
- 验证数据完整性
最佳实践
1. 开发环境
- 使用Homebrew或Docker安装,方便管理和升级
- 不启用身份验证,简化开发流程
- 使用默认配置,除非有特殊需求
- 定期备份数据
2. 测试环境
- 使用与生产环境相同的MongoDB版本
- 启用身份验证,模拟生产环境
- 配置监控,收集性能数据
- 定期进行恢复测试
3. 生产环境
- 启用身份验证和授权
- 配置TLS/SSL加密
- 设置适当的日志级别
- 定期备份数据
- 监控系统性能和资源使用
- 使用副本集或分片集群,确保高可用性
通过遵循上述安装和配置步骤,你可以在macOS系统上成功部署MongoDB,并根据实际需求进行优化和管理。
