MacOS安装MongoDB 7.x(tar包安装)

一、前言

个人原因设备上没有brew,所以官方极力推荐的brew安装方式用不了,只能通过tar包的形式安装。

Mac上第一次安装MongoDB,先是在网上找了几个教程,按指引操作之后发现遇到很多困惑,最后查阅了官网文档并按操作一次搞定。为了给自己留点印象,同时给有一样困惑的同学提供一些启发,故写下这篇文以供查阅。
根据安装的环境和方式的差异,实际操作的过程可能大相径庭。

我的安装环境:

Mac: MacBook Air (M1 2020)

Chip: Apple Silicon M1 (ARM64)

System: MacOS Ventura 13.3.1

安装MongoDB:

MongoDB: v7.0.1

MongoDB Shell: 1.10.6

二、概述

需要安装哪些包?

要保证正常的MongoDB数据库需要安装MongoDBMongoDB Shell,其中:

  • MongoDB提供数据库服务,操作命令主要对应mongod
  • MongoDB Shell提供连接和操作数据库的能力,操作命令为mongosh

三、开始安装

MongoDB

MongoDB tar安装文档

1. 下载tgz包:

注意:根据芯片选择正确的Platform,Apple芯片选择macOS ARM 64,Intel芯片选macOS X64

2. 解压

定位到下载目录,使用以下命令解压tgz包

bash 复制代码
cd ~/Downloads # 这一步根据自己实际的下载目录来
tar -zxvf mongodb-macos-arm64-7.0.1.tgz

3. 安装bin

将解压后的目录里的bin内所有文件拷贝到/usr/local/bin目录下,具体操作命令如下:

bash 复制代码
sudo cp ./mongodb-macos-aarch64-7.0.1/bin/* /usr/local/bin

4. 创建数据库和日志存放的目录

创建用于存放数据库文件和日志的目录,并且给操作用户设置目录读写权限

下面以用户名tonyerx为例,如果不确认用户名可以在chown之后按tab键提示

bash 复制代码
# 创建目录
sudo mkdir -p ~/data/db
sudo mkdir -p ~/data/log/mongodb
# 设置权限
sudo chown tonyerx ~/data/db
sudo chown tonyerx ~/data/log/mongodb

5. 运行MongoDB

安装工作完成,可以尝试运行命令启动MongoDB了

bash 复制代码
mongod --dbpath ~/data/db --logpath ~/data/log/mongodb/mongo.log --fork
# 这一步的意思为后台启动MongoDB,指定数据库存放路径和日志存放文件处
# 注意是日志存放文件不是目录!

注意:这时可能会遇到MacOS的文件安全限制提示,需要在系统偏好设置-隐私与安全面板中允许打开文件

6. 确认是否成功运行

看到以下提示代表启动成功: 你可以运行以下命令查看MongoDB是否有在后台运行:

bash 复制代码
ps aux | grep -v grep | grep mongod

MongoDB Shell

MongoDB Shell tar安装文档

1. 下载zip包

www.mongodb.com/try/downloa...

注意:根据芯片选择正确的Platform,Apple芯片选择MacOS M1,Intel芯片选MacOS 64-bit

2. 解压

在Finder中找到下载好的zip包双击即可解压,解压后文件如下:

3. 安装bin

终端定位到解压目录,将解压后目录bin里的mongosh的拷贝到/usr/local/bin目录下,mongosh_crypt_v1.dylib拷贝到/usr/local/lib目录下,具体操作命令如下:

bash 复制代码
cd ~/Downloads/ # 这一步根据自己的实际解压目录来
sudo cp ./mongosh-1.10.6-darwin-arm64/bin/mongosh /usr/local/bin
sudo cp ./mongosh-1.10.6-darwin-arm64/bin/mongosh_crypt_v1.dylib /usr/local/lib

4. 运行MongoDB Shell

运行命令:

bash 复制代码
mongosh

出现以下提示代表运行成功:

四、收尾

1. 接下来怎么使用MongoDB?

本文专注在记录安装过程,常用的MongoDB命令在网上有很多教程,受限于篇幅这里不赘述MongoDB的具体使用

2. 如何终止MongoDB的运行?

如果你已经启动了MongoDB Shell,可以在mongosh处输入以下命令来终止:

bash 复制代码
db.shutdownServer()

如果你只启动了MongoDB,可以通过查看运行进程来停止它:

bash 复制代码
pgrep mongo
# 这里得到PID,以23084为例
kill 23084
# 再执行以下命令可以发现进程已停止
ps aux | grep -v grep | grep mongod

注意:网上很多教程提到可以用mongod --shutdown来停止运行,实际上该方式仅在Linux适用,在MacOS上并没有--shutdown这个命令参数。官方文档有提及:

3. 是否能自定义安装路径

理论上可以,区别在于需要在.bash_profile.zshrc等启动文件中写入环境变量以确保,如我将mongodb放在用户目录下:

bash 复制代码
export PATH="$PATH:/Users/tonyerx/mongodb/bin"

不能保证没有其他的坑,建议按官方推荐的方式操作

4. 关于卸载(谨慎操作)

删除MongoDB bin

bash 复制代码
rm -rf /usr/local/bin/mongod
rm -rf /usr/local/bin/mongos
rm -rf /usr/local/bin/install_compass

删除MongoDB Shell bin

bash 复制代码
rm -rf /usr/local/bin/mongosh
rm -rf /usr/local/lib/mongosh_crypt_v1

删除MongoDB db和log目录

bash 复制代码
rm -rf ~/data/db
rm -rf ~/data/log
相关推荐
康不坦丁7 分钟前
MySQL 的 order by 简化(使用列序号和列别名排序)
后端·mysql
wadesir21 分钟前
深入理解Rust静态生命周期(从零开始掌握‘static的奥秘)
开发语言·后端·rust
+VX:Fegn089525 分钟前
计算机毕业设计|基于springboot + vue零食商城管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
哈哈哈笑什么33 分钟前
蜜雪冰城1分钱奶茶秒杀活动下,使用分片锁替代分布式锁去做秒杀系统
redis·分布式·后端
WZTTMoon1 小时前
Spring Boot 4.0 迁移核心注意点总结
java·spring boot·后端
寻kiki1 小时前
scala 函数类?
后端
疯狂的程序猴1 小时前
iOS App 混淆的真实世界指南,从构建到成品 IPA 的安全链路重塑
后端
bcbnb1 小时前
iOS 性能测试的工程化方法,构建从底层诊断到真机监控的多工具测试体系
后端
开心就好20251 小时前
iOS 上架 TestFlight 的真实流程复盘 从构建、上传到审核的团队协作方式
后端
小周在成长1 小时前
Java 泛型支持的类型
后端