mongod服务无法重新启动,27017端口未使用-甚至获取地址已在使用中错误

时间:2019-02-02 03:53:19

标签: mongodb mongodb-query

如果我尝试使用systemctl restart mongod来启动mongod错误,那么我将无法启动mongo db服务

  

mongod.service的作业失败,因为控制进程退出并显示错误代码。有关详细信息,请参见“ systemctl status mongod.service”和“ journalctl -xe”。

日志:vi /var/log/mongo/mongod.log

enter image description here

在日志文件中,如果我看到以下消息,则表明端口已在使用中

  indAndlisten std :: exception中的

exception:侦听:地址已在使用中,正在终止

netstat -apt| grep "27017" 
  

没有进程ID。

以下是mongod状态: enter image description here

我没有任何解决方案,将非常感谢您的帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

尝试在不同端口和不同数据目录下启动mongodb可能会有所帮助,请使用以下命令从不同端口和不同数据目录下启动

mongod --port 27027 --dbpath </path/to/your/data/directory>

如果该工作正常,则某些进程可能正在使用27017,或者您可能在后台运行mongod,因此请首先检查进程ID并按如下所示手动将其杀死

ps -Aef | grep 27017

ps -Aef | grep mongod

找到进程ID并杀死它

 sudo kill -9 <processId>

然后尝试按自己的方式重新启动它:

 systemctl restart mongod

或:

 /etc/init.d/mongodb restart

希望这对您有所帮助。

答案 1 :(得分:0)

一个问题是MongoDB使用的锁定文件可能具有错误的所有权: -rw-r--r-- 1 root root 0 Mar 16 02:27 /var/lib/mongo/mongod.lock

建议您简单地删除它,这将使MongoDB可以正确地重新创建它。该文件仅在MongoDB当前正在运行时才需要,并且理想情况下该文件也应该在正在运行时才存在,因为该文件仅包含运行MongoDB的当前进程ID的副本。

第二个问题是配置文件本身:/etc/mongod.conf。 MongoDB希望文件采用YAML格式,这显然与空格有关。我已经共享了在我们服务器上工作的示例配置文件。

基本上,每个缩进应在其父指令下的任何指令中使用两个空格。

附加说明:

例如,“ net:”标题没有缩进,因为它是其配置层的顶层,因为“ port:”和“ bindIp:”各自缩进2个空格,因为“ net:”是其父指令。 “ ssl:”伪指令也缩进了两个空格,因为其父代是“ net:”,但是由于“ mode:”,“ CAFile:”和“ PEMKeyFile:”都属于“ ssl:”,因此它们在其下方每个都增加2个空格以进一步缩进,总共4个空格。

最后,以下mongo重新启动将起作用:

systemctl restart mongod

systemctl restart mongod.service

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# Where and how to store data.
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
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Listen to local interface only, comment to listen on all interfaces.
  ssl:
    mode: preferSSL
    CAFile: /etc/ssl/mongodb/RootCA/root-ca.pem
    PEMKeyFile: /etc/ssl/mongodb/host.omkieitsolutions.com.pem

security:
  authorization: enabled
  clusterAuthMode: keyFile

#operationProfiling:

#replication:
"/etc/mongod.conf" 50L, 990C