Mac系统安装MongoDB

110 阅读5分钟

下载

MongoDB官网

下载直达

选择社区版 在这里插入图片描述

在这里插入图片描述

安装

在这里插入图片描述

在自己想要放置的位置新建一个mongoDB(文件夹名称随意)文件夹,将下载的tgz包解压后放在该目录下(这里我将解压后文件夹改名为mongodb),然后新建一个db(文件夹名称随意)文件夹,用于存放数据

启动

在这里插入图片描述mongodb文件夹下的bin目录内打开终端,执行./mongod --dbpath /Users/***/mongoDB/db

--dbpath后的路径为指定的数据存放路径,指向一个文件夹,在这个例子中就是db文件夹的绝对路径

终端输出日志如下: 在这里插入图片描述 从日志可以看到"address":"127.0.0.1""port":27017

打开浏览器输入127.0.0.1:27017,出现如下页面则表示启动成功 在这里插入图片描述 如果不想让终端中出现这么多日志记录,而是将日志保存在一个文件中,可以修改启动命令如下: ./mongod --dbpath /Users/***/mongoDB/db --lopath /Users/***/mongoDB/mongo.log

--logpath后的路径为存放日志记录的文件,指向一个文件,可以不用新建,执行后会自动生成

命令执行后,终端中不会再出现日志记录滚动,而是存在了/Users/***/mongoDB/mongo.log这个文件中 在这里插入图片描述 在这里插入图片描述

配置环境变量

上面每次执行mongod命令时,都需要进入到mongod所在目录,即/bin路径下,非常麻烦,因此可以将/bin路径添加到环境变量,这样就可以在任意路径下执行mongod命令了

我的终端是zsh,配置文件是.zshrc,打开该文件,在最后一行添加 export PATH=${PATH}:/Users/*****/mongoDB/mongodb/bin,然后保存关闭 ${PATH}:后面的路径根据自己放置的路径来写 在.zshrc所在目录打开终端,执行命令source .zshrc,使配置文件生效

测试查mongod版本

MacBookPro Desktop % mongod --version
db version v5.0.8
Build Info: {
    "version": "5.0.8",
    "gitVersion": "c87e1c23421bf79614baf500fda6622bd90f674e",
    "modules": [],
    "allocator": "system",
    "environment": {
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

使用配置文件启动

官网配置文件相关文档

官网基本配置示例

即使配置了环境变量,每次启动时还是要指定数据存放路径,还是略显麻烦,所以可以使用配置文件的形式启动

mongoDB文件夹下新建mongod.conf文件作为配置文件 在这里插入图片描述 mongoDB目前支持两种配置文件格式,一种是key=value格式,另一种是yaml格式,新版本的MongoDB更推荐使用yaml格式的配置文件写法

key=value格式

dbpath=/Users/***/mongoDB/db         # 数据库文件
logpath=/Users/***/mongoDB/mongod.log   # 日志文件
logappend=true                        # 日志采用追加模式,日志会追加到现有的日志文件,不会重新创建一个新文件
journal=true                        # 启用日志文件,默认启用
quiet=true                            # 这个选项可以过滤掉一些无用的日志信息,调试模式下设置为 false
port=27017   

启动后光标闪烁

yaml格式

# 进程相关
processManagement:
  # 是否后台运行
  fork: true

# 系统日志相关
systemLog:
  # 使用文件存储日志
  destination: file
  # 日志存储文件
  path: "/Users/****/mongoDB/mongod.log"	
  # 是否以追加的形式记录日志(会将新记录追加到现有日志文件的末尾)
  logAppend: true

# 数据相关
storage:
  # 是否回滚日志
  journal:															
    enabled: true
  # 数据存储目录
  dbPath: /Users/****/mongoDB/db	

# 网络配置相关
net:
  # 端口,默认端口27017
  port: 27017 
  # 绑定ip
  bindIp: 127.0.0.1

启动后出现

about to fork child process, waiting until server is ready for connections.
forked process: 21333
child process started successfully, parent exiting

yaml基本语法规则

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
  • #表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样

注意:yaml格式每个属性和值之间要有个空格,并且备注最好不要和配置项同一行,因为我在配置中将备注和配置内容写在同一行,并且在中间使用Tab隔开,导致启动失败

使用配置文件启动命令

在配置文件所在目录下执行:mongod -f ./mongod.confmongod --config ./mongod.conf

启动失败解决

有时候非正常关闭mongodb,可能会导致下一次启动时失败,此时可以先删除日志文件,如果重要,可以先备份,然后进入到数据文件夹下,在本例中为db文件夹,删除mongod.lock文件,最后在启动命令最后追加--repair修复并启动

mongod  -f ./mongod.conf --repair

若还是失败,再次执行

mongod  -f ./mongod.conf

关闭

此时,关闭终端窗口,并不会关闭mongDB

还是在/mongodb/bin目录下,打开终端,如果上一步已经配置环境变量,可以在任意位置打开终端

执行以下三个命令:

  • ./mongo (上一步已经配置过环境变量的可以直接执行mongo,该命令是连接mongodb,并对其进行操作)

  • use admin (牵涉到服务器配置层面的操作,需要先切换到admin数据库)

  • db.shutdownServer() 在这里插入图片描述 此时再刷新刚才打开的浏览器页面,就会出现页面无法访问,即表示mongodb关闭成功

注意: mongod用于启动mongodb,可以叫服务端 mongo用于连接、操作mongodb,可以叫客户端