2017-04-14 35 views
3

我一直在尝试在我的Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-22-generic x86_64) VPS上设置MongoDB,我一直在遇到一些问题。我以我的服务器上的用户身份运行,该用户拥有root访问权限,但没有使用root帐户本身。MongoDB - 关闭代码:100

我开始注意到,当我在admin数据库上执行db.createUser()的问题,所以我可以添加其他用户和我得到这个错误: not authorized to execute command

所以我接着卸载并安装再使用教程如在网站上提供:https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/

现在,当我在舞台上2验证MongoDB的成功开始对执行MongoDB社区版部分,也就是我在输出看来来往往米文件/var/log/mongodb/mongod.log,我得到如下:

2017-04-14T14:23:09.309+0200 I CONTROL [main] ***** SERVER RESTARTED ***** 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] MongoDB starting : pid=9691 port=27017 dbpath=/var/lib/mongodb 64-bit host=vps338741 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] db version v3.4.3 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] git version: f07437fb5a6cca07c10bafa78365456eb1d6d5e1 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] allocator: tcmalloc 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] modules: none 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] build environment: 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten]  distmod: ubuntu1604 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten]  distarch: x86_64 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten]  target_arch: x86_64 
2017-04-14T14:23:09.316+0200 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log", quiet: true } } 
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] 
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] **   See http://dochub.mongodb.org/core/prodnotes-filesystem 
2017-04-14T14:23:09.349+0200 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=464M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0), 
2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory 
2017-04-14T14:23:09.367+0200 I -  [initandlisten] Assertion: 28595:2: No such file or directory src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 267 
2017-04-14T14:23:09.367+0200 I STORAGE [initandlisten] exception in initAndListen: 28595 2: No such file or directory, terminating 
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to close listening sockets... 
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] removing socket file: /tmp/mongodb-27017.sock 
2017-04-14T14:23:09.367+0200 I NETWORK [initandlisten] shutdown: going to flush diaglog... 
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] now exiting 
2017-04-14T14:23:09.367+0200 I CONTROL [initandlisten] shutting down with code:100 

我环顾四周,这是不一样的错误as found here,因为这是与事实不存在的文件夹/data/db我必须做的。从日志我可以看到它是事做这一行:

2017-04-14T14:23:09.366+0200 E STORAGE [initandlisten] WiredTiger error (2) [1492172589:366629][9691:0x7f1755946cc0], file:WiredTiger.wt, connection: /var/lib/mongodb/WiredTiger.wt: handle-open: open: No such file or directory 

这是真的,当我去/var/lib/mongodbls -l其结果与:

drwxr-xr-x 2 mongodb mongodb 4096 Apr 14 14:10 journal 
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:02 mongod.lock 
-rw-r--r-- 1 mongodb mongodb 0 Apr 14 14:10 WiredTiger 
-rw-r--r-- 1 mongodb mongodb 21 Apr 14 14:10 WiredTiger.lock 
-rw-r--r-- 1 mongodb mongodb 1004 Apr 14 14:10 WiredTiger.turtle 

但我不知道我是否应该手动创建该文件,因为在别处没有看到这个问题。我确认mongodb用户对这些文件也有权限,如in the answer to this question所述,但仍然没有运气。

我真的不知道该怎么做,任何帮助将非常感谢,因为这是我第五次尝试让它工作!

谢谢!

回答

2

这是MongoDB中一个已知的错误,检查report

你的问题不在于文件一般丢失,这是当你一个干净关闭后重新启动,他们就消失了。您的问题与/data/db目录无关,但更多与WiredTiger.wt文件在重新启动后丢失。

Oct 1 20:00:44 alpha mongod.27017[1074]: [initandlisten] WiredTiger (2) [1443729644:306783][1074:0x7fdba8fd4bc0], file:WiredTiger.wt, connection: /data/db/WiredTiger.wt: No such file or directory

该bug报告谈到了同样的事情。

尝试:

我建议尝试在配置文件中禁用WiredTiger。

MongoDB Config Options

WiredTiger

+0

这工作,感谢使发出来的光。我改变了我的配置,就像'[storage]部分下面的'engine:mmapv1'一样[https://gist.github.com/satoryu/495913e59bb249b060cc]。非常感谢您的帮助! –

+0

配置文件位于何处? –

+0

https://docs.mongodb.com/manual/reference/configuration-options/ - 尝试检查'/ etc/mongod.conf' –

0

为我'答案'是执行以下命令(因为service mongod startmongod失败)

sudo mongod --fork --port 27017 --replSet admin --logpath /data/log/mongo.log 

我并不需要关闭有线老虎