我在Centos 7上安装了mongodb,一切正常。
但如果我重新启动系统,mongodb就无法启动了。如果我再次卸载并安装,工作正常。但重新启动后,再也无法启动了。
当我尝试使用systemctl时,mongod.service显示:
mongod.service - 高性能,无架构的面向文档的数据库 已加载:已加载(/usr/lib/systemd/system/mongod.service;已启用;供应商预设:已禁用) 主动:失败(结果:退出代码)自Dom 2016-11-27 09:49:36 BRT; 12分钟前 文档:https://docs.mongodb.org/manual 进程:1471 ExecStart = / usr / bin / mongod $ OPTIONS运行(代码=退出,状态= 1 / FAILURE) 主PID:1471(代码=退出,状态= 1 / FAILURE)
11月27日09:49:19 localhost.localdomain systemd [1]:启动高性能,无架构的面向文档的数据库。 11月27日09:49:19 localhost.localdomain systemd [1]:启动高性能,无架构的面向文档的数据库...... 11月27日09:49:36 localhost.localdomain mongod [1471]:即将分叉子进程,等待服务器准备好连接。 11月27日09:49:36 localhost.localdomain mongod [1471]:分叉进程:2828 11月27日09:49:36 localhost.localdomain mongod [1471]:错误:子进程失败,退出错误号为1 11月27日09:49:36 localhost.localdomain systemd [1]:mongod.service:主进程退出,代码=退出,状态= 1 / FAILURE 11月27日09:49:36 localhost.localdomain systemd [1]:单位mongod.service进入失败状态。 11月27日09:49:36 localhost.localdomain systemd [1]:mongod.service失败。
我已经尝试过:
*chcon -R -t mongod_var_lib_t /var/lib/mongo
*SElinux=disable
*chmod 7777 /var/lib/mongo
and nothing.
我记得在我格式化电脑之前出现此错误时,我需要通过一个简单的命令对systemd进行许可。但我找不到了。
答案 0 :(得分:1)
答案 1 :(得分:0)
我删除并重新安装Mongodb 3.4 服务器以:sudo systemctl start mongod.service启动,然后启动确定。
这里是 /var/log/mongodb/mongod.log
2016-11-27T13:23:03.600-0300 I CONTROL [main] ***** SERVER RESTARTED
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] MongoDB 开始:pid = 8247 port = 27017 dbpath = / var / lib / mongo 64位 主机=的localhost.localdomain
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] db版本 v3.4.0-RC5
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] git版本: 7df8fe1099135d137516f1670d2a0091ace63ca0
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] OpenSSL 版本:OpenSSL 1.0.1e-fips 2013年2月11日
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] allocator: tcmalloc
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] modules:none
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] build 环境:
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] distmod: rhel70
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] distarch: x86_64的
2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten]
target_arch:x86_642016-11-27T13:23:03.612-0300 I CONTROL [initandlisten]选项:{ 命令:[" run" ],config:" /etc/mongod.conf" ;, net:{bindIp: " 127.0.0.1",port:27017},processManagement:{fork:true, pidFilePath:" /var/run/mongodb/mongod.pid" ,storage:{dbPath: " / var / lib / mongo",journal:{enabled:true}},systemLog:{ destination:" file",logAppend:true,path: " /var/log/mongodb/mongod.log" ;, quiet:true}}
2016-11-27T13:23:03.971-0300 I - [initandlisten]检测到的数据 / var / lib / mongo中的文件由' wiredTiger'创建。存储引擎, 所以将活动存储引擎设置为' wiredTiger'。
2016-11-27T13:23:03.971-0300 I STORAGE [initandlisten] wiredtiger_open配置: 创建,CACHE_SIZE = 1329M,session_max = 20000,收回=(threads_max = 4),config_base =假,统计=(快),日志=(启用=真,档案= TRUE,路径=杂志,压缩机=活泼),file_manager = (close_idle_time = 100000),检查点=(等待= 60,LOG_SIZE = 2GB),statistics_log =(等待= 0),
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] **警告: 未对数据库启用访问控制。
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] **
对数据和配置的读写访问不受限制。2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] **警告: / sys / kernel / mm / transparent_hugepage / enabled始终是'。
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] **我们 建议将其设置为“永远不会”
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] **警告: / sys / kernel / mm / transparent_hugepage / defrag总是'。
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] **我们 建议将其设置为“永远不会”
2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]
2016-11-27T13:23:05.061-0300 I FTDC [initandlisten]正在初始化 使用目录' / var / lib / mon
进行全时诊断数据捕获enter code here
go / diagnostic.data'2016-11-27T13:23:05.061-0300 I NETWORK [thread1]等待 端口27017上的连接
当我重启系统时,Mongodb不会重新启动。 下面是日志:
logAppend:true path: /var/log/mongodb/mongod.log
*#在何处以及如何存储数据。
2016-11-27T13:30:27.927-0300 I CONTROL [main] ***** SERVER RESTARTED
2016-11-27T13:30:28.279-0300 I CONTROL [main]错误:无法写pid 文件到/var/run/mongodb/mongod.pid:没有这样的文件或目录
这是我的 /etc/mongod.conf
存储
dbPath:/ var / lib / mongo
轴颈: enabled:true
*#engine:
* #mmapv1:
*#wiredTiger:
*#流程如何运行
processManagement:fork:true#fork并在后台运行
pidFilePath:/var/run/mongodb/mongod.pid #pidfile的位置* #network interfaces net:port:27017 bindIp:127.0.0.1#仅收听本地接口,在所有接口上发表评论。
* #security:
*#operationProfiling:
* #re replication:
* #shading:
* ## Enterprise-Only Options
* #auditLog:
*#snmp:
答案 2 :(得分:0)
我也在CentOS 7和mongodb 3.4上遇到了这个问题。这就是我解决它的方法:
/etc/mongod.conf
文件并将 fork 更改为 false ,将 pidFilePath 更改为 dbPath (对我来说是/ var / lib / mongo):/etc/mongod.conf:
storage:
dbPath: /var/lib/mongo
processManagement:
fork: false # fork and run in background
pidFilePath: /var/lib/mongo/mongod.pid # location of pidfile
net:
port: 27017
bindIp: 0.0.0.0
firewall-cmd --zone=public --permanent --add-port=27017/tcp; firewall-cmd --reload
tail -f /var/log/mongodb/mongod.log &
systemctl restart mongod; systemctl status mongod
NETWORK [thread1] waiting for connections on port 27017
它对我有用,我重启了系统,我可以马上连接到mongo。