Skip to content

配置文件

macos 上安装 MongoDB 后,会在 /usr/local/etc/mongod.conf 中生成配置文件。

bash
# mongod.conf
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

从该文件中可以看出,MongoDB 的配置文件主要包含三个部分:

  • systemLog:日志配置
  • storage:存储配置
  • net:网络配置

启动服务

macos 上启动 MongoDB 服务的命令如下:

bash
mongod --config /usr/local/etc/mongod.conf

该命令启动之后,按 ctrl + c 可以停止服务。

TIP

该命令,同 redis-server 命令类似,启动的并不是守护进程。

笔者在使用 brew services start mongodb-community 启动守护进程时,发现失败了。更加合适的方式,留待日后考究。

此处作以记录。

此处,再列举一下 mongod 的常用启动参数(更多参数,可通过 mongod --help 查看):

参数描述
--config指明配置文件,譬如 /usr/local/etc/mongod.conf
--bind_ipIP 地址,若绑定 127.0.0.1,则只能本机访问,不指定默认本地所有 IP
--port端口,默认为 27017
--dbpath指定数据库路径。
--logpath指定日志文件,注意是指定文件不是目录。
--logappend使用追加的方式写日志。
--serviceName指定服务名称。
--serviceDisplayName指定服务名称,有多个 mongodb 服务时执行。
--install指定作为一个 Windows 服务安装。

连接数据库

macos 上连接 MongoDB 数据库的命令如下:

bash
mongo [options] [db address] [file names (ending in .js)]

其中,[options] 为可选参数,[db address] 为数据库地址,[file names (ending in .js)]js 文件。

[options] 参数如下:

参数描述
-h指定 host,默认为 localhost
-p指定端口,譬如 27017
-u指定用户名。
-p指定密码。
-d指定数据库。

[db address] 参数如下:

参数描述
--host指定 host,默认为 localhost
--port指定端口,譬如 27017
--username指定用户名。
--password指定密码。
--authenticationDatabase指定数据库。

[file names (ending in .js)] 参数如下:

参数描述
--eval执行 js 代码。
--shell进入 shell 模式。

设置用户和密码

在终端中运行 mongo 命令,进入 MongoDBshell 模式。

bash
mongo

运行如下命令,使用内置的 admin 数据库:

bash
use admin

创建一个管理员用户,运行如下命令:

js
db.createUser({user:"admin", pwd:"password", roles:["root"]})

使用这个管理员用户账号登录,运行如下命令:

bash
mongo -u admin -p password --authenticationDatabase admin

全局变量

MongoDBshell 模式中,有一些全局变量,可以使用。

变量名描述
db当前数据库。
rs副本集。
sh分片。
db.getMongo()当前 MongoDB 实例。
db.getMongo().setSlaveOk()设置 MongoDB 实例为 slave
db.getMongo().setReadPref()设置 MongoDB 实例的 read 偏好。