MongoDB 4升级提示 /var/run/mongod.pid: Invalid argument`

Posted 海口-熟练工

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 4升级提示 /var/run/mongod.pid: Invalid argument`相关的知识,希望对你有一定的参考价值。

因安全需要,需要升级MongoDB,本来是件很简单的事,把包下载下来 -Uvh就完事了。万万没想到花了十几分钟。升级以后一直报 Failed to read PID from file /var/run/mongod.pid: Invalid argument

Starting High-performance, schema-free document-oriented database...
Failed to read PID from file /var/run/mongod.pid: Invalid argument
Stopped High-performance, schema-free document-oriented database.

关键是MongoDB配置文件里面已经配置了pid文件

[root@ecs-11-152 mongodb]# grep pid /etc/mongod.conf 
  pidFilePath: /data/mongodb/mongod.pid  # location of pidfile

这个 /var/run/mongod.pid 不知道是哪来的

网上查没有只发现一个类似的报错,

https://my.oschina.net/u/2357619/blog/1609622

问题产生原因

因为 nginx 启动需要一点点时间,而 systemd 在 nginx 完成启动前就去读取 pid file
造成读取 pid 失败

解决方法

让 systemd 在执行 ExecStart 的指令后等待一点点时间即可
如果你的 nginx 启动需要时间更长,可以把 sleep 时间改长一点
建立目录
mkdir -p /etc/systemd/system/nginx.service.d

在新建目录中建立文件override.conf,输入内容

[Service]
ExecStartPost=/bin/sleep 0.1

然后
systemctl daemon-reload
systemctl restart nginx.service

于是去查看MongoDB的启动文件,/lib/systemd/system/mongod.service

结果发现有这么一行

PIDFile=/var/run/mongod.pid

把这一行屏蔽以后重启,问题解决







以上是关于MongoDB 4升级提示 /var/run/mongod.pid: Invalid argument`的主要内容,如果未能解决你的问题,请参考以下文章

安装MongoDB

mongodb2.2.0升级到3.4.10操作记录

MongoDB从4.4.2~4.4.4升级存严重Bug

将 MongoDB 从 2.6 升级到 4.2.6

将 Mongodb 从 3.2 升级到 3.6 时出错

MongoDB从3.0.6升级到MongoDB3.4.9