Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在CentOS 7上启动MongoDB 3.2.1_Mongodb_Centos_Centos7 - Fatal编程技术网

无法在CentOS 7上启动MongoDB 3.2.1

无法在CentOS 7上启动MongoDB 3.2.1,mongodb,centos,centos7,Mongodb,Centos,Centos7,我按照这个文档在CentOS 7上安装了MongoDB 3.2.1。安装后,我将var/lib/mongo和var/log/mongodb/mongod.log的所有者和组更改为root:root 当我使用服务mongod start启动mongodb时,它只显示 Starting mongod (via systemctl): Job for mongod.service failed. See 'systemctl status mongod.service' and 'journalct

我按照这个文档在CentOS 7上安装了MongoDB 3.2.1。安装后,我将
var/lib/mongo
var/log/mongodb/mongod.log
的所有者和组更改为
root:root

当我使用
服务mongod start
启动mongodb时,它只显示

Starting mongod (via systemctl):  Job for mongod.service failed. See 'systemctl status mongod.service' and 'journalctl -xn' for details.[FAILED]
我已经运行了两个命令来显示细节

systemctl状态mongod.service
显示

mongod.service - SYSV: Mongo is a scalable, document-oriented database.
   Loaded: loaded (/etc/rc.d/init.d/mongod)
   Active: failed (Result: exit-code) since Wen 2016-01-27 18:32:46 CST; 14s ago
  Process: 24913 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=1/FAILURE)
 Main PID: 23711 (code=exited, status=0/SUCCESS)

1月 27 18:32:45 server1 systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
1月 27 18:32:45 server1 runuser[24920]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
1月 27 18:32:46 server1 mongod[24913]: Starting mongod: [FAILED]
1月 27 18:32:46 server1 systemd[1]: mongod.service: control process exited, code=exited status=1
1月 27 18:32:46 server1 systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
1月 27 18:32:46 server1 systemd[1]: Unit mongod.service entered failed state.
journalctl-xn
显示

-- Logs begin at 日 2016-01-24 16:33:05 CST, end at Wen 2016-01-27 18:32:46 CST. --
1月 27 18:32:15 server1 sshd[24879]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
1月 27 18:32:17 server1 sshd[24879]: Failed password for root from 182.100.67.59 port 10013 ssh2
1月 27 18:32:45 server1 sudo[24896]: root : TTY=pts/0 ; PWD=/var/log/mongodb ; USER=root ; COMMAND=/sbin/service mongod start
1月 27 18:32:45 server1 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.
1月 27 18:32:45 server1 runuser[24920]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
1月 27 18:32:46 server1 runuser[24920]: pam_unix(runuser:session): session closed for user mongod
1月 27 18:32:46 server1 mongod[24913]: Starting mongod: [FAILED]
1月 27 18:32:46 server1 systemd[1]: mongod.service: control process exited, code=exited status=1
1月 27 18:32:46 server1 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
-- 
-- Unit mongod.service has failed.
-- 
-- The result is failed.
1月 27 18:32:46 server1 systemd[1]: Unit mongod.service entered failed state.

我使用ssh密钥访问服务器,没有密码。

是否有理由将所有权更改为root

mongodb用户应该可以写入
/var/lib/mongo
/var/log/mongodb


默认情况下,它是
mongodb:mongodb
。在
/etc/init.d/mongodb
中检查哪个用户运行mongodb服务。如果类似于
DAEMONUSER=${DAEMONUSER:-mongodb}
,则将目录返回给该用户。

selinux权限可能会导致类似的问题,该权限在CentOS 7中默认启用。可以通过禁用selinux或使用以下方法将正确的上下文添加到mongo数据库路径来修复此问题:

chcon -R -t mongod_var_lib_t /var/lib/mongod

我尝试了人们提到的所有方法,但没有成功,所以我结束了为它构建一个简单的单元服务文件,因为在我的例子中,问题似乎与init脚本()有关

我在这里创建了服务文件:

/etc/systmd/system/mongodb.service
以此为内容:

[Unit]
Description=MongoDB Database Service
Wants=network.target
After=network.target
[Service]
Type=forking
PIDFile=/var/run/mongodb/mongod.pid
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=mongod
Group=mongod
StandardOutput=syslog
StandardError=syslog
[Install]
WantedBy=multi-user.target
在那之后,我所做的就是以以下方式开始:

$ sudo systemctl start mongodb

我希望这能帮助其他人。

好的。它是
mongod:mongod
。我更改了用户,因为我尝试使用默认用户运行mongodb,但失败了。我现在可以运行start命令了。但我无法通过主机27017或robomongo访问mongodb。我不确定它是否有效。嗯,这是另一个问题。您能从本地系统连接到数据库吗?默认情况下,它只监听
lo
接口。在
/etc/mongodb.conf
中检查绑定ip的内容。我可以运行
mongo
命令。我已经在
/etc/mongod.conf
中注释了
bindIp
。我使用了MongoDB3.0,它运行良好。我可以通过http访问它(虽然它只是给我一个警告,但现在我得到了错误连接超时)。MongoDB 3.2中似乎发生了一些变化,对吗?好的,一次一件事=)检查服务是否已启动并正在运行,并使用
sudo lsof-i | grep mongo
在端口上侦听。如果有效,我们可以检查mongo日志中的连接问题。现在它不再工作了。我什么也没做,只是尝试更改
/etc/mongod.conf
重新启动
它,甚至恢复配置文件都失败了