今天在启动 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 ]