MongoDB --- 全局初始化失败:无法打开“/var/log/mongodb/mongod-config.log”

rap*_*Dev 8 mongodb configuration sharding

我正在尝试为 mongodb 分片设置配置服务器。我创建了一个特定的配置文件,该文件设置为登录到/var/log/mongodb/mongod-config.log.

当我运行时mongod --config <path-to-config-file>,我收到此错误:

`F CONTROL  [main] Failed global initialization: FileNotOpen: Failed to open 
"/var/log/mongodb/mongod-config.log"`
Run Code Online (Sandbox Code Playgroud)

当我运行相同的命令但使用 时sudo,它运行但没有输出。

但是当我尝试在我的配置文件指定的端口 (27019) 上启动 mongo shell 时,我得到了这个:

MongoDB shell version v3.6.4
connecting to: mongodb://127.0.0.1:27019/test
2018-05-01T03:13:13.399+0000 W NETWORK  [thread1] Failed to connect to 
127.0.0.1:27019, in(checking socket for error after poll), reason: Connection 
refused
2018-05-01T03:13:13.400+0000 E QUERY    [thread1] Error: couldn't connect to 
server 127.0.0.1:27019, connection attempt failed :
connect@src/mongo/shell/mongo.js:251:13
@(connect):1:6
exception: connect failed
Run Code Online (Sandbox Code Playgroud)

我只是在关注MongoDB 分片文档

我在这里看到了一些以前的帖子,其中一个是同样的问题。那里没有解决方案,但我想再试一次,看看是否有人对此有解决方案。

不确定我是否遗漏了什么或问题是什么......

rap*_*Dev 3

所以,我已经弄清楚了我自己的问题。

首先,问题是由于我为配置服务器使用了不同的端口 27019,因此我需要从防火墙打开该端口。

其次,我将配置文件中的dbPath 从 更改/var/lib/mongodb/data/db,因为这是 mongodb 存储数据的默认路径。

一定要sudo service mongod restart追着跑。

完成后,我可以使用我的特定配置文件启动 mongod:

sudo mongod --config <path-to-config-file>
Run Code Online (Sandbox Code Playgroud)

关键是sudo对我来说包括在内。这解决了以下问题:

F CONTROL  [main] Failed global initialization: FileNotOpen: Failed to open 
"/var/log/mongodb/mongod-config.log"
Run Code Online (Sandbox Code Playgroud)

运行命令后,我看到 mongod 已在我的虚拟机 (vm) 上启动,现在我可以使用以下命令从另一台计算机连接到所述 vm 的 mongo shell:

mongo <ip_address_of_said_vm>:27019
Run Code Online (Sandbox Code Playgroud)