MongoDB安全机制

启动mongod

推荐使用 配置文件(mongod.conf) 的方式启动 mongod。

Linux系统下启动:

mongod -f mongod.conf

Windows系统下启动 (cmd命令窗口,右键,以管理员身份运行):

mongod.exe -f mongod.conf

若不使用配置文件启动 mongod,采用直接 mongod + 参数 的形式,则需要输入多项对应的参数,略显麻烦。

mongod.conf 配置参考:

#数据库目录设置
storage:
  dbPath: ../data
  journal:
    enabled: true

#日志相关设置
systemLog:
  destination: file
  logAppend: true
  path:  ../log/mongod.log

#网络端口设置
#注意:
#1、建议一定要将默认的端口号 27017 修改为其他端口,防止被一些 mongodb 端口黑客扫描工具
#2、如果 bindIp 值为 0.0.0.0,则表示可以通过外网IP进行访问
#3、如果 bindIp 值为 127.0.0.1,则表示仅本机内部可访问
net:
  port: 27027
  bindIp: 127.0.0.1

#是否后台运行设置。 特别说明:windows系统不支持该项,不可以有此项设置
processManagement:
  fork: true

#用户认证设置
security:
  authorization: enabled

常见的启动失败解决办法

当执行启动 mongod 命令后,如果顺利启动,则会收到类似以下信息:

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

如果没有看到 successfully 则可能是启动失败,以下为常见的2种启动失败原因和解决办法。

第1种:第一次启动 mongod,启动前并未创建数据库和日志的目录

一定要提前创建好存放数据和日志的目录,并确保目录有读写的权限,例如上面配置示例中的 ../data 和 ../log,若启动之前并未创建对应目录,则会启动失败,收到以下类似的错误提示:

about to fork child process, waiting until server is ready for connections.
forked process: 26716(这个数字每次是会变化的)
ERROR: child process failed, exited with 1
To see additional information in this output, start without the "--fork" option.

第2种:之前的 mongod 异常关闭

还有另外一种情况,就是之前启动了 mongod 却未正常关闭,导致 mongod 处于一种 “异常关闭保护性被锁” 的状态,目的是为了保持在非正常关闭那一刻记录还未保持的数据(本人目前暂时的理解),也会出现启动失败,这时解决方法是 找到 data 目录,删除里面的 mongod.lock 文件,再次执行启动命令即可。

Windows系统启动 mongod 的注意事项