JER*_*RRY 10 mongodb configuration
我已经mongodb使用yum安装了一个实例。. 现在一切正常。我使用service mongod start. 它运作良好。然后我更改了配置文件中的data directory和log path。我再次重新启动服务器并启动了服务。但我收到以下错误:
Restarting mongod (via systemctl): Job for mongod.service failed. See 'systemctl status mongod.service' and 'journalctl -xn' for details.
[FAILED]
Run Code Online (Sandbox Code Playgroud)
当我给时,systemctl status mongod.service我得到以下信息:
Loaded: loaded (/etc/rc.d/init.d/mongod)
Active: failed (Result: exit-code) since Wed 2015-03-18 11:35:56 IST; 22s ago
Process: 10672 ExecStop=/etc/rc.d/init.d/mongod stop (code=exited, status=0/SUCCESS)
Process: 10841 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=1/FAILURE)
Main PID: 10509 (code=exited, status=0/SUCCESS)
Mar 18 11:35:56 localhost systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session closed for user mongod
Mar 18 11:35:56 localhost mongod[10841]: Starting mongod: [FAILED]
Mar 18 11:35:56 localhost systemd[1]: mongod.service: control process exited, code=exited status=1
Mar 18 11:35:56 localhost systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
Mar 18 11:35:56 localhost systemd[1]: Unit mongod.service entered failed state.
Run Code Online (Sandbox Code Playgroud)
当我给时,journalctl -xn我得到以下信息:
-- Logs begin at Wed 2015-03-18 08:56:56 IST, end at Wed 2015-03-18 11:35:56 IST. --
Mar 18 11:30:01 localhost systemd[1]: Starting Session 20 of user root.
-- Subject: Unit session-20.scope has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit session-20.scope has begun starting up.
Mar 18 11:30:01 localhost systemd[1]: Started Session 20 of user root.
-- Subject: Unit session-20.scope has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit session-20.scope has finished starting up.
--
-- The start-up result is done.
Mar 18 11:30:01 localhost CROND[10712]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Mar 18 11:35:56 localhost systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
-- Subject: Unit mongod.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mongod.service has begun starting up.
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Mar 18 11:35:56 localhost runuser[10850]: pam_unix(runuser:session): session closed for user mongod
Mar 18 11:35:56 localhost mongod[10841]: Starting mongod: [FAILED]
Mar 18 11:35:56 localhost systemd[1]: mongod.service: control process exited, code=exited status=1
Mar 18 11:35:56 localhost systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
-- Subject: Unit mongod.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Run Code Online (Sandbox Code Playgroud)
谁能帮我解决这个问题?谢谢!!!
PS:我创建的数据目录具有用户的所有权限。但是,如果我将数据目录更改为默认 ( /var/lib/mongodb),它可以正常工作。
小智 6
我遇到了类似的问题,并发现在mongod.conf我的情况下它是一个配置错误的文件。也可能是新目录的权限设置不正确。 chown -R mongod:mongod <directory name>是我确保访问的方式(当然chmod 600 <dir>也是)。最后,运行 anls -Z以确保上下文正确。我只是与对我有用的默认目录进行了比较。
如果这还没有解决,请同时显示您的日志文件的内容。那里可能有一些线索。
小智 5
我在 Raspberry Pi 和我的 Ubuntu 服务器上都有这个。
“ mongod.service 的作业失败。有关详细信息,请参阅“systemctl status mongod.service”和“journalctl -xn”。”
由于不同的原因,我在不同的场合遇到过这个问题:
错误命名的 .conf 文件– mongodb 脚本(我移至/etc/init.d/mongodb),CONF=/etc/mongod.conf当我的实际文件为/etc/mongodb.conf. 更改第 57 行更正了它。另外,我可以完全一样地更改脚本名称。
mongod.lock 文件——上次 mongod 停止时,它没有机会关闭数据库。这会在您的数据库文件夹中留下一个名为mongod.lock. 文件夹内有一个数字(我相信这是 mongo 最后使用的 PID)。如果此文件存在,您将无法启动 mongod 服务。删除文件并重试。
mongo 用户——我需要创建一个负责启动和运行 mongod.service 的 linux 用户。我命名了我的 mongo 并更新了我的/etc/init.d/mongodb脚本,我的第 95 行,说DAEMONUSER=${DAEMONUSER:-mongo}. 这当然只有在您创建了一个名为 mongo 的新用户(或我认为您想要的任何用户)时才有效。
数据库权限——这是一种流行的权限。声明数据库文件夹所在的位置后,您需要确保您的“mongo”用户拥有该文件的所有权。例如,我的数据库存储在/data/db. 我运行了以下命令:sudo chown –R mongo:mongo /data
这将其/data所有子目录的所有权转移给了 mongo 用户。
错误的服务——这对我来说有点尴尬。我试图mongo作为服务而不是mongod. mongo是您可以直接手动运行和输入命令到 mongo 的 shell。这就是我创建数据库并添加一些对象的方式。mongod另一方面是 mongo 守护进程,它在后台运行,为您编写/用于访问的其他应用程序托管您的数据库。确保不要在 conf 文件、脚本等的任何地方混淆它们。
希望其中之一可以为您解决问题。
附带说明一下,我的mongodb.conf文件是空的。但是,即使它是空的,您也需要正确地指向它。
| 归档时间: |
|
| 查看次数: |
67603 次 |
| 最近记录: |