2016-11-27 218 views
0

我在Centos 7上安装了mongodb,并且所有工作都正常。mongodb不能启动centos 7

但是,如果我重新启动系统,mongodb无法启动了。如果我卸载并再次安装,工作正常。但重启后,不能再启动了。

当我尝试systemctl状态mongod.service显示:

mongod.service - High-performance, schema-free document-oriented database Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Dom 2016-11-27 09:49:36 BRT; 12min ago Docs: https://docs.mongodb.org/manual Process: 1471 ExecStart=/usr/bin/mongod $OPTIONS run (code=exited, status=1/FAILURE) Main PID: 1471 (code=exited, status=1/FAILURE)

Nov 27 09:49:19 localhost.localdomain systemd[1]: Started High-performance, schema-free document-oriented database. Nov 27 09:49:19 localhost.localdomain systemd[1]: Starting High-performance, schema-free document-oriented database... Nov 27 09:49:36 localhost.localdomain mongod[1471]: about to fork child process, waiting until server is ready for connections. Nov 27 09:49:36 localhost.localdomain mongod[1471]: forked process: 2828 Nov 27 09:49:36 localhost.localdomain mongod[1471]: ERROR: child process failed, exited with error number 1 Nov 27 09:49:36 localhost.localdomain systemd[1]: mongod.service: main process exited, code=exited, status=1/FAILURE Nov 27 09:49:36 localhost.localdomain systemd[1]: Unit mongod.service entered failed state. Nov 27 09:49:36 localhost.localdomain systemd[1]: mongod.service failed.

我已经尝试过:

*chcon -R -t mongod_var_lib_t /var/lib/mongo 
*SElinux=disable 
*chmod 7777 /var/lib/mongo 
and nothing. 

我记得当这个错误之前格式化我的电脑出现了,我需要把上的权限系统用一个简单的命令。但我找不到了。

+0

我们需要更多的信息来调试此。来自mongodb日志文件的任何内容? – jaxxstorm

回答

0

我删除并重新安装Mongodb 3.4 服务器启动时:sudo systemctl启动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 starting : pid=8247 port=27017 dbpath=/var/lib/mongo 64-bit host=localhost.localdomain

2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] db version v3.4.0-rc5

2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] git version: 7df8fe1099135d137516f1670d2a0091ace63ca0

2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013

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 environment:

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_64

2016-11-27T13:23:03.612-0300 I CONTROL [initandlisten] options: { command: [ "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] Detected data files in /var/lib/mongo created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.

2016-11-27T13:23:03.971-0300 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=1329M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] **
Read and write access to data and configuration is unrestricted.

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] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] ** We suggest setting it to 'never'

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten] ** We suggest setting it to 'never'

2016-11-27T13:23:05.036-0300 I CONTROL [initandlisten]

2016-11-27T13:23:05.061-0300 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mon enter code here go/diagnostic.data'

2016-11-27T13:23:05.061-0300 I NETWORK [thread1] waiting for connections on port 27017

当我重新启动系统正,MongoDB中不会重新开始。 继承人的日志:

logAppend: true path: /var/log/mongodb/mongod.log

*# Where and how to store data.

2016-11-27T13:30:27.927-0300 I CONTROL [main] ***** SERVER RESTARTED


2016-11-27T13:30:28.279-0300 I CONTROL [main] ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory

这里是我的/etc/mongod.conf

storage:

dbPath: /var/lib/mongo

journal: enabled: true

*# engine:

*# mmapv1:

*# wiredTiger:

*# how the process runs

processManagement: fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile

*# network interfaces net: port: 27017 bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.

*# security:

*# operationProfiling:

*# replication:

*# sharding:

*## Enterprise-Only Options

*# auditLog:

*# snmp:

+0

我发现了这个问题,但我不知道如何解决它。每次我重新启动系统时,文件夹/ var/run/mongodb都会消失。我每次重启系统时都必须执行sudo mkdir/var/run/mongodb和sudo chmod 777 -R/var/run/mongodb和sudo/sbin/restorecon -R/var/run/mongodb。我如何解决这个问题? – omag0

0

我也跑成在CentOS 7和MongoDB 3.4。下面是我如何解决它:

  1. 编辑/etc/mongod.conf文件,改变pidFilePath到相同DBPATH(这对我来说是/ var/lib中/蒙戈):

/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

    1. 跟踪日志文件,然后重新启动:

    tail -f /var/log/mongodb/mongod.log &

    systemctl restart mongod; systemctl status mongod

  • 你应该在日志文件的最后一行看到:
  • NETWORK [thread1] waiting for connections on port 27017

    它为我工作,我重新引导系统,我可以直接连接到mongo。

    0

    这里是官方的bug报告 https://jira.mongodb.org/browse/SERVER-27241

    更新与下面的systemd服务,直到他们解决它正式

    [Service] 
        User=mongod 
        Group=mongod 
        Environment="OPTIONS=--quiet -f /etc/mongod.conf" 
        PermissionsStartOnly=true 
        ExecStartPre=/usr/bin/mkdir /var/run/mongodb 
        ExecStartPre=/usr/bin/chown -R mongod:mongod /var/run/mongodb 
        ExecStart=/usr/bin/mongod $OPTIONS run 
        PIDFile=/var/run/mongodb/mongod.pid