MacBook M1安装Mongodb---kalrry
前言
一、MacBook M1安装Mongodb
1、brew方式安装MongoDB
先了解如下Linux(mac)命令,本文可能用到:
查看软件安装在哪(路径):which +软件名
查看当前在哪个位置(路径):whoami
移动/重命名:mv
复制文件: cp
- 首先安装brew包管理器:安装教程
- MongoDB不开源了,brew install mongodb安装命令失效了,目前brew只能安装社区版
1)brew tap mongodb/brew
2)brew install mongodb-community
//这里建议直接安装最新社区版(5.0--version+版本即可)
//低版本配置路径有所不同
2、编写配置文件
2021-12-16-更新
- 安装完成后,找到配置目录,详细路径请看官方文档
//MacBook M1芯片的默认配置目录如下:
/opt/homebrew/etc/mongod.conf
//MacBook Intel芯片的默认配置目录如下:
/usr/local/etc/mongod.conf
//注意:以上路径是通过brew包管理器安装的默认路径,其他方式安装的未测试
//三方注释:https://www.jianshu.com/p/8e04773672ac//
- 打开配置文件:
sudo vim /opt/homebrew/etc/mongod.conf
vim编辑器:按i键进行编辑,esc退出编辑,:wq保存并退出文件
- 编写配置文件,注释很清晰(#号是注释),如有不懂,直接CV:
#配置日志文件,MongoDB 采用的是yaml格式的配置文件
systemLog:
#1、日志输出形式: 可选参数为 syslog 或 file syslog 直接在终端输出 file 输出到文件
destination: file
#2、日志文件的路径: 当 destination 设置为 file 时必须
path: /opt/homebrew/var/log/mongodb/mongo.log
#3、是否以追加形式生成日志 : true 追加 false 备份原来的日志文件,并生成新>的日志文件
logAppend: true
#4、数据库路径
storage:
dbPath: /opt/homebrew/var/mongodb
#5、网络配置
net:
# 绑定IP(默认127.0.0.1,只能本机访问,要允许所有ip,使用0.0.0.0)
bindIp: 127.0.0.1
#6、端口 (默认27017~27019,根据安装时的安装方式决定)
port: 27017
#7、进程方式
processManagement:
# 开启守护进程模式,如果 fork 为 false 的话,直接 ctrl + c 停止服务。
# 如果为true,关闭麻烦点,直接看第五步
# 我选择的是false,对新手友好点,ctrl + c 即停
fork: false
3、配置环境变量(可跳过)
配置环境变量前先查看版本,如果显示版本信息,直接跳过配置环境变量到第五步
mongod -version
//经测试:正常情况下是不需要配置环境变量可直接跳转到第四步,如果mongod -version执行不成功再回来配置环境变量
- 找到MongoDB安装的位置
一般通过brew安装的文件都在/opt/homebrew/Cellar/目录下,我的在/opt/homebrew/Cellar/mongodb-community/5.0.3/bin - 输入命令,打开配置文件,配置环境变量
认识shell
// 用如下命令打开配置文件
open ~/.bash_profile
// 或者,根据自己用的什么shell决定
open ~/.zshrc
// 配置环境变量
export PATH=$PATH:/opt/homebrew/Cellar/mongodb-community/5.0.3/bin
- 保存完后执行
source ~/.bash_profile
// 或者,根据自己用的什么shell决定
source ~/.zshrc
- 查看环境变量是否配置成功,
echo $PATH
// 配置成功后会显示刚才配置的路径
4、验证mogodb是否安装成功
mongod -version
5、启动/停止Mongo服务,链接数据库
启动:
使用 mongod 来启动服务, 通过 --config 或 -f 命令来使用配置文件
//注意:经网友反馈---启动mongo的时候,opt前面需要加一个/不指定/ 找不到conf: is a directory
mongod --config opt/homebrew/etc/mongod.conf
mongod -f opt/homebrew/etc/mongod.conf
停止:
如果之前的配置文件里 fork 为 false 的话,直接 ctrl + c 停止服务。
如果 fork 为 true , 使用以下两种方法都可以。
//方法一:通过查杀进程的方式,查看进程,使用 kill 命令;不能使用kill -9,为什么不能使用kill -9 请百度 kill 与 kill -9 的区别
//通常启动服务成功,会输出服务的进程ID,也可以使用以下命令来查看ID
ps aux | grep -v grep | grep mongod
//方法二:在客户端进去,使用shutdown命令
> use admin;
switched to db admin
> db.shutdownServer();
server should be down...
//在主节点(primary)上运行shutdown命令时,服务器在关闭之前,⬇️
//会先等待备份节点追赶主节点以保持同步。这将回滚的可能性降至最低,⬇️
//但shutdown操作有失败的可能性。如几秒钟内没有备份节点成功同步,⬇️
//则shutdown操作失败,主节点不会停止运行。
6、验证Mongo服务是否启动成功
打开浏览器输入如下地址:
localhost:27017
// 启动成功,浏览器会显示:
// It looks like you are trying to access MongoDB over HTTP on the native driver port.
7、Robo 3T,(MongoDB的客户端)
Robo 3T是MongoDB的客户端,直接去官网下载即可
常用命令:
8、MongoDB弃用警告
官方文档
中文解释
在MongoDB Node.js驱动程序中有几个弃用,Mongoose提供了解决这些弃用警告的选项
要修复所有弃用警告,请按照以下步骤操作:
mongoose.set('useNewUrlParser', true)
mongoose.set('useFindAndModify', false)
mongoose.set('useCreateIndex', true)
1、将update()替换为updateOne(),updateMany(),replaceOne()
2、将remove()替换为deleteOne()或deleteMany()
3、将count()替换为countDocuments(), 除非想要计算整个集合中有多少文档(没有过滤器)。在后一种情况下,使用estimatedDocumentCount()