今天在启动 MongoDB 时突然出错了,如下:
[root@S1 ~]# service mongod start
Starting mongod: [FAILED]于是去查看 MongoDB 日志,日志位于 /var/log/mongodb/mongod.log。如下:
[root@S1 lib]# tail /var/log/mongodb/mongod.log
2018-07-03T18:49:32.575+0800 E STORAGE [initandlisten] WiredTiger error (13) [1530614972:575911][1701:0x7f276d642b00], wiredtiger_open: __posix_open_file, 667: /var/lib/mongo/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1530614972:575911][1701:0x7f276d642b00], wiredtiger_open: __posix_open_file, 667: /var/lib/mongo/WiredTiger.turtle: handle-open: open: Permission denied
2018-07-03T18:49:32.576+0800 E STORAGE [initandlisten] WiredTiger error (13) [1530614972:576150][1701:0x7f276d642b00], wiredtiger_open: __posix_open_file, 667: /var/lib/mongo/WiredTiger.turtle: handle-open: open: Permission denied Raw: [1530614972:576150][1701:0x7f276d642b00], wiredtiger_open: __posix_open_file, 667: /var/lib/mongo/WiredTiger.turtle: handle-open: open: Permission denied
2018-07-03T18:49:32.576+0800 W STORAGE [initandlisten] Failed to start up WiredTiger under any compatibility version.
2018-07-03T18:49:32.576+0800 F STORAGE [initandlisten] Reason: 13: Permission denied
2018-07-03T18:49:32.576+0800 F - [initandlisten] Fatal Assertion 28595 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 934
2018-07-03T18:49:32.576+0800 F - [initandlisten]
***aborting after fassert() failure上面日志中,“handle-open: open: Permission denied”表示没有权限。
解决办法:
(1)查看 /var/lib/mongo 目录下面文件的权限。如下:
[root@S1 mongo]# ll
total 480
-rw-------. 1 root root 4096 Jul 3 14:15 collection-0--5087589816980123676.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:15 collection-0--5760475092999790112.wt
-rw-------. 1 root root 20480 Jul 3 14:16 collection-2--5087589816980123676.wt
-rw-------. 1 mongod mongod 36864 Jul 3 14:16 collection-2--5760475092999790112.wt
-rw-------. 1 root root 20480 Jul 3 14:16 collection-4--5087589816980123676.wt
-rw-------. 1 mongod mongod 24576 Jul 3 14:14 collection-4--5760475092999790112.wt
-rw-------. 1 root root 20480 Jul 3 14:16 collection-6--5087589816980123676.wt
drwx------. 2 mongod mongod 4096 Jul 3 17:36 diagnostic.data
-rw-------. 1 root root 4096 Jul 3 14:15 index-1--5087589816980123676.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:15 index-1--5760475092999790112.wt
-rw-------. 1 root root 20480 Jul 3 14:16 index-3--5087589816980123676.wt
-rw-------. 1 mongod mongod 36864 Jul 3 14:16 index-3--5760475092999790112.wt
-rw-------. 1 root root 20480 Jul 3 14:16 index-5--5087589816980123676.wt
-rw-------. 1 mongod mongod 24576 Jul 3 14:14 index-5--5760475092999790112.wt
-rw-------. 1 mongod mongod 12288 Jul 3 14:14 index-6--5760475092999790112.wt
-rw-------. 1 root root 20480 Jul 3 14:16 index-7--5087589816980123676.wt
drwx------. 2 mongod mongod 4096 Jul 3 14:15 journal
-rw-------. 1 mongod mongod 36864 Jul 3 14:16 _mdb_catalog.wt
-rw-------. 1 mongod mongod 5 Jul 3 14:15 mongod.lock
-rw-------. 1 mongod mongod 36864 Jul 3 14:17 sizeStorer.wt
-rw-------. 1 mongod mongod 114 Jul 3 10:39 storage.bson
-rw-------. 1 mongod mongod 47 Jul 3 10:39 WiredTiger
-rw-------. 1 root root 4096 Jul 3 14:15 WiredTigerLAS.wt
-rw-------. 1 mongod mongod 21 Jul 3 10:39 WiredTiger.lock
-rw-------. 1 root root 1190 Jul 3 14:18 WiredTiger.turtle
-rw-------. 1 mongod mongod 77824 Jul 3 14:18 WiredTiger.wt(2)使用 chown 修改文件所属组合、所属用户为 mongod。如下:
[root@S1 mongo]# chown mongod:mongod * -R
[root@S1 mongo]# ll
total 480
-rw-------. 1 mongod mongod 4096 Jul 3 14:15 collection-0--5087589816980123676.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:15 collection-0--5760475092999790112.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:16 collection-2--5087589816980123676.wt
-rw-------. 1 mongod mongod 36864 Jul 3 14:16 collection-2--5760475092999790112.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:16 collection-4--5087589816980123676.wt
-rw-------. 1 mongod mongod 24576 Jul 3 14:14 collection-4--5760475092999790112.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:16 collection-6--5087589816980123676.wt
drwx------. 2 mongod mongod 4096 Jul 3 17:36 diagnostic.data
-rw-------. 1 mongod mongod 4096 Jul 3 14:15 index-1--5087589816980123676.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:15 index-1--5760475092999790112.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:16 index-3--5087589816980123676.wt
-rw-------. 1 mongod mongod 36864 Jul 3 14:16 index-3--5760475092999790112.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:16 index-5--5087589816980123676.wt
-rw-------. 1 mongod mongod 24576 Jul 3 14:14 index-5--5760475092999790112.wt
-rw-------. 1 mongod mongod 12288 Jul 3 14:14 index-6--5760475092999790112.wt
-rw-------. 1 mongod mongod 20480 Jul 3 14:16 index-7--5087589816980123676.wt
drwx------. 2 mongod mongod 4096 Jul 3 14:15 journal
-rw-------. 1 mongod mongod 36864 Jul 3 14:16 _mdb_catalog.wt
-rw-------. 1 mongod mongod 5 Jul 3 14:15 mongod.lock
-rw-------. 1 mongod mongod 36864 Jul 3 14:17 sizeStorer.wt
-rw-------. 1 mongod mongod 114 Jul 3 10:39 storage.bson
-rw-------. 1 mongod mongod 47 Jul 3 10:39 WiredTiger
-rw-------. 1 mongod mongod 4096 Jul 3 14:15 WiredTigerLAS.wt
-rw-------. 1 mongod mongod 21 Jul 3 10:39 WiredTiger.lock
-rw-------. 1 mongod mongod 1190 Jul 3 14:18 WiredTiger.turtle
-rw-------. 1 mongod mongod 77824 Jul 3 14:18 WiredTiger.wt
[root@S1 mongo]#(3)启动 MongoDB 服务。如下:
[root@S1 mongo]# service mongod start
Error starting mongod. /var/run/mongodb/mongod.pid exists.启动还是失败了,因为 mongod.pid 已经存在。去将 mongod.pid 文件删除,再次去启动。如下:
[root@S1 mongo]# rm /var/run/mongodb/mongod.pid
rm: remove regular file `/var/run/mongodb/mongod.pid'? y
[root@S1 lib]#
[root@S1 lib]# service mongod start
Starting mongod: [ OK ]