无法使用配置文件启动mongod

时间:2014-08-08 18:34:56

标签: mongodb

我在Windows 8.1上安装了mongodb

然后我使用命令提示导航到D:\ mongodb \ bin

然后我使用这个命令

mongod.exe --config D:\mongodb\mongodb.conf

mongodb.conf的内容

bind_ip = 127.0.0.1,100.100.100.100
port = 3979
quiet = true
dbpath = D:\mongodb\data\db
logpath = D:\mongodb\data\log\mongodb.log
logappend = true
journal = true

但是mongod并没有开始。如果我使用mongod.exe(不使用配置文件),它可以正常工作

更新

我的意图很简单:将默认端口更改为另一个端口,仅允许从某些IP地址进行访问。

我正在使用Ubuntu的配置。感谢Panda_Claus指出了新的配置。

所以我将配置更改为

net:
   bindIp: 127.0.0.1,100.100.100.100
   port: 3979

问题是,当我使用此配置启动mongod时,它会出错,然后自动退出

ERROR: listen(): bind() failed errno:10049 The requested address is not valid in its context. for socket: 100.100.100.100:3979

那么如何只允许localhost和特定的IP地址(本例中为100.100.100.100)连接到mongodb?

更新2

我使用了maerics的配置

net:
  bindIp: 127.0.0.1,192.168.10.104
  port: 3979
storage:
  dbPath: D:\mongodb\data\db
  journal:
    enabled: true
systemLog:
  destination: file
  path: D:\mongodb\data\log\mongodb.log
  quiet: true
  logAppend: true

有趣的是,使用这个,我只能连接到本地机器上的数据库,其他局域网计算机无法连接到

192.168.10.104:3979. 

但是,如果我删除了

systemLog:
  destination: file
  path: D:\mongodb\data\log\mongodb.log
  quiet: true
  logAppend: true

LAN网络中的其他计算机都可以连接到数据库。

4 个答案:

答案 0 :(得分:10)

配置文件必须为valid YAML

尝试修改随文档提供的示例文件,例如:

net:
  bindIp: 127.0.0.1
  port: 3979
storage:
  dbPath: D:\mongodb\data\db
  journal:
    enabled: true
systemLog:
  destination: file
  path: D:\mongodb\data\log\mongodb.log
  quiet: true
  logAppend: true

答案 1 :(得分:3)

不是mongo专家,但从mongo文档中可以看出,您应该使用“:”作为分隔符而不是“=”。

这是我发现支持此链接的链接:

[1]:[http://docs.mongodb.org/manual/reference/configuration-options/“Mongo配置文件格式”] [1]

答案 2 :(得分:1)

正如其他人已经说过的,这个错误指向一个不正确的配置文件。因此,最好采用与 mongo 安装捆绑在一起的默认 conf 文件并在其上进行自定义。在基于 Linux 的 mongo 安装中,可以在 /etc/mongod.conf 找到它。 以下是步骤摘要:

  1. 将默认配置复制到所需位置。 cp /etc/mongod.conf <desired_directory>/mymongod.conf
  2. 进行自定义并使用新的配置文件启动 mongod。 /usr/bin/mongod --config <desired_directory>/mymongod.conf

答案 3 :(得分:0)

如果有效的 YAML 不能解决您的问题。然后你可以试试这些步骤。

第 1 步:首先检查您的 Mongod 的安装位置。就我而言,它在这里:检查您的路径

C:\Program Files\MongoDB\Server\4.0\bin

enter image description here

第 2 步: 检查您的配置文件名。就像我的情况一样,它是 mongod.cfg。这是默认配置。您可以创建自己的或使用相同的,因为我为此示例创建了新的:mongod_original.cfg。您可以在此处更新端口或任何您想要的内容。如:(要编辑文件,请以管理员身份在记事本中打开文件)。保存文件,如果它抛出任何错误,请检查您的记事本是否以管理员身份打开。

enter image description here

第 3 步:cmd 的身份运行 administrator。并为您的配置文件运行此命令:

mongod --config mongod_original.cfg

输出:

您的 mongoDB 将在更新端口启动:27000

enter image description here

有用:如果出现错误:exception in initAndListen: IllegalOperation: Attempted to create a lock file on a read-only directory: C:\Program Files\MongoDB\Server\4.0\data, terminating

点击链接,根据您的操作系统,您可以找到解决方案:MongoDB: exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating