推荐使用 配置文件(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 文件,再次执行启动命令即可。