1. 通过tgz包安装MongoDB
1.1 下载并解压缩安装包
-
官网下载 mac OS 的 MongoDB 安装包,这里选择7.x版本进行安装(下载链接)

-
下载好的tgz包,双击解压缩,并重命名为
mongdb -
将安装包拷贝到安装目录,笔者的安装目录为
/usr/local,copy时需要root权限sudo cp -rf mongdb /usr/local
1.2 设置环境变量
-
对于mac OS,一般通过
~/.zshrc设置环境变量。因此,编辑~/.zshrc,添加如下内容export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin -
source ~/.zshrc后,分别执行如下命令,以保证 MongoDB 成功安装mongod:启动 MongoDB 服务对应的命令mongod --versionmongos:启动 MongoDB 代理,即 mongos 对应的命令mongos --versionmongosh:启动 MongoDB 的shell客户端对应的命令mongosh --version
-
PS: 奇怪的是,笔者下载的是
7.0.14的安装包,mongod --version却显示的是6.0.18

2. 启动服务并执行简单的查询
-
在 Home 目录下创建data目录,用于存储数据,笔者这里选择的data目录为
mkdir ~/mongodb/data
2.1 最简单的服务启动方式
-
执行
mongod命令,指定data目录、以前台运行的方式启动一个 MongoDB 服务- 默认端口号:
27017,默认接受0.0.0.0(所有IP)的访问 - 默认
authorization为false,即无需用户和密码就能访问
mongod --dbpath ./data - 默认端口号:
-
通过 mongosh 开启一个shell,其默认访问
27017端口mongosh -
在
test库的test_data集合下,插入几条数据use test; # 切换数据库 # 直接插入数据到test_data集合, MongoDB将自动创建test_data集合 db.test_data.insertMany([ { name: "Bob", age: 25, sex: "male", city: "Los Angeles" }, { name: "Carol", age: 28, sex: "female", city: "Chicago" }, { name: "Dave", age: 35, sex: "male", city: "San Francisco" } ]) -
数据插入成功,返回的信息如下:

-
执行如下命令,查询name为Bob的信息
db.test_data.find({'name':"Bob"}); -
成功查询到对应的数据

2.2 后台运行MongoDB
- 上述启动方式,日志直接输出到控制台对于本地开发是足够的
- 要想后台启动MongoDB、避免服务被误关闭,可以通过指定相关参数实现
--dbpath,指定数据目录。--logpath,指定日志目录--port,指定服务运行端口。--bind_ip_all,允许从所有IP地址访问--fork,以守护进程方式运行(后台运行)
mongod --dbpath /Users/xxx/mongodb/data --logpath /Users/xxx/mongodb/log \ --port 27030 --bind_ip_all --fork
-
还可以通过符合
yaml格式的配置文件,以后台进程的方式启动 MongoDB -
在目录下,创建
/Users/xxx/mongodb/etc/mongod.conf文件,内容如下storage: dbPath: /Users/xxx/mongodb/data journal: enabled: true # 网络相关配置 net: port: 27030 bindIp: 0.0.0.0 # 允许从所有IP地址访问 # 日志相关配置 systemLog: destination: file logAppend: true logRotate: rename path: /Users/xxx/mongodb/log/mongo.log # 进程管理相关配置 processManagement: fork: true # 以守护进程方式运行(后台运行) # 安全相关配置 security: authorization: disabled # 关闭用户认证 -
然后,通过指定config文件,实现服务启动
mongod --config ~/mongodb/etc/mongod.conf # --config可以简写为 -f mongod -f ~/mongodb/etc/mongod.conf
2.3 后台启动的一些注意事项
-
配置文件指定路径时,一定要写绝对路径 !!!
-
不然会根据
mongod命令的执行路径自动补全,导致路径未初始化,主要报错信息如下:"msg":"Error during global initialization" "error":{"code":38,"codeName":"FileNotOpen","errmsg":"Can't initialize rotatable log file :: caused by :: Failed to open /Users/xxx/mongodb/etc/~/mongodb/log/mongod.log"} -
如果后台启动失败,一般会提示关闭后台启动,也就是说让报错信息直接打印到前台
- 对于直接
mongod --fork的启动方式,其实就是去除 --fork - 对于配置文件启动,将
fork: true改成fork: false

- 对于直接
2.4 关于MongoDB的配置文件
-
从网上能查找的资料,好多配置文件采用旧版写法,有些配置项可能不再支持
-
例如博客 MongoDB主从复制(master–>slave)环境搭建 中的配置文件,
master=true -
master和slave已经不再支持,会导致MongoDB无法启动,报错信息如下:"msg":"Master/slave replication is no longer supported"
3. 后记
3.1 MongoDB 诊断命令(Diagnostic Commands)
- MongoDB Shell 的使用可以参考:MongoDB数据库的基本使用总结
- MongoDB 提供了丰富的诊断命令:Diagnostic Commands,可以通过这些命令查看连接池、连接数等各种服务状态
- 甚至,一些数据库函数也可以帮助我们了解MongoDB状态
示例:查看连接数
-
执行如下命令,可以查看服务的连接情况
db.serverStatus().connections -
返回的信息如下,关于
db.serverStatus().connections各字段的含义,甚至serverStatus的其他信息,可以参考官方文档:serverStatus{ current: 5, # 当前活动连接数 available: 199, # 剩余可用连接数,current + available可以得出集群的最大连接数 totalCreated: 417, # 自 MongoDB 实例启动以来创建的总连接数 active: 2, # 连接到服务器的活跃client数量 threaded: 5, exhaustIsMaster: 0, exhaustHello: 1, awaitingTopologyChanges: 1, loadBalanced: Long('0') }
3.2 参考链接
- Mac OS 安装 MongoDB 详细步骤
















![[已解决] Install PyTorch 报错 —— OpenOccupancy 配环境](https://i-blog.csdnimg.cn/direct/fca3e40a722b4e61baf548b46a7d26fd.png)


