Ubuntu 14.04LTS下mongod开机自启配置求助
解决MongoDB开机自启及配置不生效的问题
我太懂你这种反复折腾的崩溃感了!咱们一步步来把这个问题彻底解决——apt安装的MongoDB本来就该支持平滑开机自启,只是配置环节出了些小疏漏:
第一步:修正/etc/mongod.conf核心配置
你说配置了但没生效,大概率是关键参数没设置对。先打开配置文件:
sudo nano /etc/mongod.conf
确保以下两项配置准确:
- 存储路径:找到
storage块,把dbPath改成你指定的目录:storage: dbPath: /var/lib/mongodb - 权限认证:找到
security块,开启授权(对应你命令里的--auth参数):security: authorization: enabled
保存退出后,先验证配置文件是否合法:
mongod --config /etc/mongod.conf --check
如果没有报错,说明配置逻辑没问题。
第二步:修复systemd服务文件(关键!)
apt安装的MongoDB默认用systemd管理,你之前直接在service命令后加参数的方式不符合规范——所有启动参数都应该通过配置文件传递,而非手动追加。
先检查默认的服务文件:
cat /lib/systemd/system/mongod.service
重点看ExecStart这一行,正确写法应该是:
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
如果这一行被你修改过,先备份原文件:
sudo cp /lib/systemd/system/mongod.service /lib/systemd/system/mongod.service.bak
再重新编辑恢复正确的ExecStart配置:
sudo nano /lib/systemd/system/mongod.service
第三步:重新加载systemd并启用开机自启
修改完服务文件后,需要让systemd重新识别配置:
sudo systemctl daemon-reload
然后启用开机自启:
sudo systemctl enable mongod
现在启动服务并检查状态:
sudo systemctl start mongod sudo systemctl status mongod
如果显示active (running),说明服务正常运行了,重启机器就能验证开机自启是否生效。
关于直接执行mongod报错的说明
直接敲mongod会使用默认配置查找/data/db目录,而你的数据库实际在/var/lib/mongodb,所以下次手动启动时,记得指定配置文件:
mongod --config /etc/mongod.conf
不过搞定systemd服务后,日常用systemctl管理即可,不用再手动执行这个命令。
最后说下你之前踩的坑:把自定义脚本放进init.d会和systemd服务冲突,而且apt安装的MongoDB已经自带完善的systemd配置,完全没必要自己写启动脚本;直接在service命令后加参数也不符合systemd的管理逻辑,所有参数都该通过配置文件统一传递~
内容的提问来源于stack exchange,提问作者Jolly
相关产品推荐
相关产品推荐

