[英]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:这里有两个问题:
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
。
Create a file /usr/lib/tmpfiles.d/mongodb.conf
.创建文件
/usr/lib/tmpfiles.d/mongodb.conf
。
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.