简体   繁体   English

错误:无法将 pid 文件写入 /var/run/mongodb/mongod.pid:没有这样的文件或目录 inf fedora 20

[英]ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory inf fedora 20

MongoDB is not starting. MongoDB 未启动。 I have installed mongo and mongo was running but after reboot it is not running.我已经安装了 mongo 并且 mongo 正在运行,但重启后它没有运行。

ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory错误:无法将 pid 文件写入 /var/run/mongodb/mongod.pid:没有这样的文件或目录

My system is Fedora 20我的系统是 Fedora 20

Its log archive.它的日志存档。

2014-09-18T00:28:58.515-0300 ***** SERVER RESTARTED *****
2014-09-18T00:28:58.522-0300 [initandlisten] MongoDB starting : pid=3048 port=27017 dbpath=/var/lib/mongo 64-bit host=localhost.localdomain
2014-09-18T00:28:58.522-0300 [initandlisten] db version v2.6.4
2014-09-18T00:28:58.522-0300 [initandlisten] git version: 3a830be0eb92d772aa855ebb711ac91d658ee910
2014-09-18T00:28:58.522-0300 [initandlisten] build info: Linux build7.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2014-09-18T00:28:58.522-0300 [initandlisten] allocator: tcmalloc
2014-09-18T00:28:58.522-0300 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, storage: { dbPath: "/var/lib/mongo" }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2014-09-18T00:28:58.591-0300 [initandlisten] journal dir=/var/lib/mongo/journal
2014-09-18T00:28:58.600-0300 [initandlisten] recover : no journal files present, no recovery needed
2014-09-18T00:28:58.961-0300 [initandlisten] waiting for connections on port 27017
2014-09-18T00:29:06.450-0300 [initandlisten] connection accepted from 127.0.0.1:55047 #1 (1 connection now open)
2014-09-18T00:29:18.402-0300 [conn1] end connection 127.0.0.1:55047 (0 connections now open)
2014-09-18T00:29:47.336-0300 [initandlisten] connection accepted from 127.0.0.1:55049 #2 (1 connection now open)
2014-09-18T00:29:47.355-0300 [initandlisten] connection accepted from 127.0.0.1:55050 #3 (2 connections now open)
2014-09-18T00:29:58.915-0300 [clientcursormon] mem (MB) res:54 virt:604
2014-09-18T00:29:58.915-0300 [clientcursormon]  mapped (incl journal view):320
2014-09-18T00:29:58.915-0300 [clientcursormon]  connections:2
2014-09-18T00:29:59.095-0300 [initandlisten] connection accepted from 127.0.0.1:55055 #4 (3 connections now open)
2014-09-18T00:30:03.065-0300 [initandlisten] connection accepted from 127.0.0.1:55071 #5 (4 connections now open)
2014-09-18T00:30:14.503-0300 [initandlisten] connection accepted from 127.0.0.1:55082 #6 (5 connections now open)
2014-09-18T00:30:27.781-0300 [initandlisten] connection accepted from 127.0.0.1:55093 #7 (6 connections now open)
2014-09-18T00:30:34.899-0300 [initandlisten] connection accepted from 127.0.0.1:55100 #8 (7 connections now open)
2014-09-18T00:30:42.071-0300 [initandlisten] connection accepted from 127.0.0.1:55114 #9 (8 connections now open)
2014-09-18T00:30:52.297-0300 [conn3] end connection 127.0.0.1:55050 (7 connections now open)
2014-09-18T00:30:52.299-0300 [conn2] end connection 127.0.0.1:55049 (6 connections now open)
2014-09-18T00:31:01.252-0300 [conn5] end connection 127.0.0.1:55071 (5 connections now open)
2014-09-18T00:31:01.255-0300 [conn6] end connection 127.0.0.1:55082 (4 connections now open)
2014-09-18T00:31:01.256-0300 [conn7] end connection 127.0.0.1:55093 (3 connections now open)
2014-09-18T00:31:01.256-0300 [conn9] end connection 127.0.0.1:55114 (2 connections now open)
2014-09-18T00:31:01.259-0300 [conn4] end connection 127.0.0.1:55055 (1 connection now open)
2014-09-18T00:31:01.277-0300 [conn8] end connection 127.0.0.1:55100 (0 connections now open)
2014-09-18T00:31:02.252-0300 [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends
2014-09-18T00:31:02.252-0300 [signalProcessingThread] now exiting
2014-09-18T00:31:02.252-0300 [signalProcessingThread] dbexit: 
2014-09-18T00:31:02.252-0300 [signalProcessingThread] shutdown: going to close listening sockets...
2014-09-18T00:31:02.252-0300 [signalProcessingThread] closing listening socket: 8
2014-09-18T00:31:02.252-0300 [signalProcessingThread] closing listening socket: 9
2014-09-18T00:31:02.252-0300 [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock
2014-09-18T00:31:02.253-0300 [signalProcessingThread] shutdown: going to flush diaglog...
2014-09-18T00:31:02.253-0300 [signalProcessingThread] shutdown: going to close sockets...
2014-09-18T00:31:02.253-0300 [signalProcessingThread] shutdown: waiting for fs preallocator...
2014-09-18T00:31:02.253-0300 [signalProcessingThread] shutdown: lock for final commit...
2014-09-18T00:31:02.253-0300 [signalProcessingThread] shutdown: final commit...
2014-09-18T00:31:02.508-0300 [signalProcessingThread] shutdown: closing all files...
2014-09-18T00:31:02.509-0300 [signalProcessingThread] closeAllFiles() finished
2014-09-18T00:31:02.509-0300 [signalProcessingThread] journalCleanup...
2014-09-18T00:31:02.509-0300 [signalProcessingThread] removeJournalFiles
2014-09-18T00:31:03.069-0300 [signalProcessingThread] shutdown: removing fs lock...
2014-09-18T00:31:03.069-0300 [signalProcessingThread] dbexit: really exiting now
2014-09-18T00:31:49.408-0300 ***** SERVER RESTARTED *****
2014-09-18T00:31:49.457-0300 ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory
2014-09-18T00:34:39.353-0300 ***** SERVER RESTARTED *****
2014-09-18T00:34:39.356-0300 ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory
2014-09-18T00:37:04.978-0300 ***** SERVER RESTARTED *****
2014-09-18T00:37:04.983-0300 ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory
2014-09-18T00:40:37.708-0300 ***** SERVER RESTARTED *****
2014-09-18T00:40:37.713-0300 ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory
2014-09-18T00:50:07.490-0300 ***** SERVER RESTARTED *****
2014-09-18T00:50:07.494-0300 ERROR: Cannot write pid file to /var/run/mongodb/mongod.pid: No such file or directory

What worked for me in Ubuntu is a combination of the answers from @Tuan Nguyen and @Tom Carchrae在 Ubuntu 中对我有用的是 @Tuan Nguyen 和 @Tom Carchrae 的答案的组合

sudo kill $(sudo lsof -t -i:27017) 
sudo rm -rf /tmp/mongodb-27017.sock
sudo rm -f /var/lib/mongo/mongod.lock
sudo rm -f /var/run/mongodb/mongod.pid
sudo mkdir -p  /var/run/mongodb/
touch /var/run/mongodb/mongod.pid
sudo chown -R  mongodb:mongodb /var/run/mongodb/
sudo chown mongodb:mongodb /var/run/mongodb/mongod.pid

You can then run然后你可以运行

sudo service mongod start

The MongoDB packages contain a "bug" which prevents them from starting properly on the newer RedHat based systems. MongoDB 包包含一个“错误”,它会阻止它们在基于 RedHat 的较新系统上正常启动。 Please see SERVER-14679 for details.有关详细信息,请参阅SERVER-14679

As a workaround until 2.6.5 is released, please edit the init script according to https://github.com/mongodb/mongo/commit/50ca596ace0b1390482408f1b19ffb1f9170cab6作为 2.6.5 发布之前的解决方法,请根据https://github.com/mongodb/mongo/commit/50ca596ace0b1390482408f1b19ffb1f9170cab6编辑初始化脚本

i finally found a solution that worked for me (I'm using Ubuntu on my Vagrant VM), i started with this :我终于找到了一个适合我的解决方案(我在我的 Vagrant VM 上使用 Ubuntu),我从这个开始:

sudo mkdir -p /var/run/mongodb/
sudo chown -R mongodb:mongodb /var/run/mongodb

But when i checked my logs with :但是当我检查我的日志时:

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

I still had this :我还有这个:

[HOUR] I CONTROL [main] ***** SERVER RESTARTED ***** [HOUR] 我控制 [main] ***** 服务器重新启动 *****

[HOUR] I CONTROL [main] ERROR: Cannot write pid file to /var/run/mongod.pid: Permission denied [HOUR] I CONTROL [main] 错误:无法将 pid 文件写入 /var/run/mongod.pid:权限被拒绝

So i've edited a file named mongod.pid with nothing in it :所以我编辑了一个名为 mongod.pid 的文件,其中没有任何内容:

sudo vim /var/run/mongod.pid

And i've changed the rights :我已经改变了权利:

sudo chown mongodb:mongodb mongod.pid

Final folders, users & rights :最终文件夹、用户和权限:

drwxr-xr-x 2 mongodb mongodb 40 Jul 27 09:28 mongodb/ drwxr-xr-x 2 mongodb mongodb 40 Jul 27 09:28 mongodb/

-rw-r--r-- 1 mongodb mongodb 1 Jul 27 09:35 mongod.pid -rw-r--r-- 1 mongodb mongodb 1 Jul 27 09:35 mongod.pid

Then :然后 :

sudo systemctl restart mongod

And that finally worked :)这终于奏效了:)

step by step, centos 6.8一步一步,centos 6.8

sudo kill $(sudo lsof -t -i:27017) 
rm -rf /tmp/mongodb-27017.sock
rm -f /var/lib/mongo/mongod.lock 
rm -f /var/run/mongodb/mongod.pid 
sudo service mongod start

open port 27017 and save changes打开端口 27017 并保存更改

iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
sudo service iptables sav

这帮助我继续前进

mkdir -p  /var/run/mongodb/ ;chown -R  mongod:mongod /var/run/mongodb/

Also tried the same of the first above, which worked before but on another server it didn't, strange, anyway what worked finally was: (Running Ubuntu server)还尝试了与上面第一个相同的方法,它之前有效,但在另一台服务器上却没有,奇怪的是,最终有效的是:(运行 Ubuntu 服务器)

# mkdir /var/run/mongodb/
# touch /var/run/mongodb/mongod.pid
# chown -hR mongodb /var/run/mongodb/
# chown mongodb:mongodb /var/run/mongodb/mongod.pid
# service mongod restart
# service mongod status

There are two problems here:这里有两个问题:

  1. The files in /var/run are not persistent. /var/run 中的文件不是持久的。
  2. The mongodb user does not have the privilege to write to /var/run mongodb用户没有写入 /var/run 的权限

Solution:解决方案:

Use systemd-tmpfiles to create the directory /var/run/mongodb on every startup.使用systemd-tmpfiles在每次启动时创建目录/var/run/mongodb

  1. Create a file /usr/lib/tmpfiles.d/mongodb.conf .创建文件/usr/lib/tmpfiles.d/mongodb.conf

  2. Add the following in the file.在文件中添加以下内容。

    d /var/run/mongodb 2775 mongodb mongodb - -

The other answers that mention doing sudo chown -R mongodb:mongodb /var/run/mongodb/ worked for me at first but then fail on reboot on Ubuntu since those files get recreated at every boot.提到执行sudo chown -R mongodb:mongodb /var/run/mongodb/的其他答案起初对我有用,但随后在 Ubuntu 上重新启动时失败,因为这些文件在每次启动时都会重新创建。

The solution is to create this file:解决方案是创建此文件:

/usr/lib/tmpfiles.d/mongod.conf

And populate it like this:并像这样填充它:

d /run/mongod 0755 mongodb mongodb -

The above path may vary between distros but the idea is to have the system auto-generate the needed directory instead of trying to create it manually.上面的路径可能因发行版而异,但我们的想法是让系统自动生成所需的目录,而不是尝试手动创建它。 In my case (running Ubuntu 20.04.5 LTS), the path is specified in:在我的例子中(运行 Ubuntu 20.04.5 LTS),路径在以下位置指定:

/etc/mongod.conf

In this block:在这个块中:

# how the process runs
processManagement:
  pidFilePath: /var/run/mongod/mongod.pid

You may see a slightly different path in /lib/systemd/system/mongod.service but it's mongod.conf overrides it.您可能会在/lib/systemd/system/mongod.service中看到一个略有不同的路径,但它被mongod.conf覆盖了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Mongo 重启错误 — /var/run/mongodb/mongod.pid 存在 - Mongo Restart Error — /var/run/mongodb/mongod.pid exists 启动后无法打开 PID 文件 /var/run/mongodb/mongod.pid(还没有?):符号链接级别太多 MongoDB Centos 7 - Can't open PID file /var/run/mongodb/mongod.pid (yet?) after start: Too many levels of symbolic links MongoDB Centos 7 MongoDB Docker容器:错误:无法将pid文件写入/tmp/tmp.aLmNg7ilAm:设备上没有剩余空间 - MongoDB Docker container: ERROR: Cannot write pid file to /tmp/tmp.aLmNg7ilAm: No space left on device MongoDB,不是root用户的Ubuntu用户,并将PID文件存储在/ var / run / mongodb中 - MongoDB, an Ubuntu user other than root, and storing the PID file in /var/run/mongodb 无法将日志发送到 /var/mongodb/logs/mongod.log 文件并且无法将 mongod 分叉并作为守护进程运行 - Not able to send logs to /var/mongodb/logs/mongod.log file and not able to mongod is forked and run as a daemon 无法将日志发送到 /var/mongodb/logs/mongod.log 文件并且无法将 mongod 分叉并作为守护进程运行,我无法添加用户 - Not able to send logs to /var/mongodb/logs/mongod.log file and not able to mongod is forked and run as a daemon and i coudnt add user 启动 MongoDB : ./bin/mongod 没有那个文件或目录 - Starting MongoDB : ./bin/mongod No such file or directory bash:mongodb / bin / mongod:没有这样的文件或目录 - bash: mongodb/bin/mongod : No such file or directory 在 solaris 上安装 mongodb — bin/mongod: 无法执行二进制文件 - Installing mongodb on solaris — bin/mongod: cannot execute binary file mongod(2.8)出现错误“加载共享库时出错:libssl.so.10:无法打开共享库文件:没有这样的文件或目录” - Getting error with mongod (2.8) “error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory”
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM