MongoDB: 服务器启动警告

25

今天我首次安装了MongoDB 3.2.5。但是当我启动它并使用MongoDB Shell时,它会给我以下警告:

C:\Windows\system32>mongo
MongoDB shell version: 3.2.5
connecting to: test
Server has startup warnings:
2016-04-16T11:06:17.943+0800 I CONTROL  [initandlisten]
2016-04-16T11:06:17.943+0800 I CONTROL  [initandlisten] ** WARNING: Insecure configuration, access control is not enabled and no --bind_ip has been specified.
2016-04-16T11:06:17.943+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted,
2016-04-16T11:06:17.943+0800 I CONTROL  [initandlisten] **          and the server listens on all available network interfaces.
2016-04-16T11:06:17.943+0800 I CONTROL  [initandlisten]
>

我的操作系统是微软 Windows [ 版本 10.0.10586 ]。


这个回答解决了你的问题吗?[MongoDB:服务器启动警告“数据库未启用访问控制”] (https://dev59.com/JFgR5IYBdhLWcg3wLq9n) - Penny Liu
3个回答

36
你还没有配置Mongodb中的安全特性,如授权和认证。使用此链接了解更多详情。如果你正在学习Mongodb,可以忽略这个问题。但是,当产品进入生产阶段时,你应该关注它们。
你可以使用mongod --auth启用访问控制。例如,你可以运行 mongod --auth --port 27017 --dbpath /data/db1 。之后,你可以使用用户名和密码保护你的数据库。你可以使用以下命令在数据库中添加用户。
use admin
db.auth("myUserAdmin", "abc123" )

之后,您可以使用以下命令mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"连接到数据库。

您可以按照以下方式在mongod.conf中添加 bind_ip

`bind_ip = 127.0.0.1,192.168.161.100` 

如果需要的话,您可以定义很多个。这个"bind_ip"选项告诉MongoDB接受来自哪些本地网络接口的连接,而不是哪个“远程IP地址”。 并运行 mongod --config <file path to your mongod.conf> 总之,您可以运行mongod --auth --port 27017 --dbpath /data/db1 --config <file path to your mongod.conf>


1
如果你是mongodb的初学者,请忽略警告并学习mongodb。这些是用于生产级别的。 - Lakmal Vithanage

3
运行mongod --auth以启用访问控制。详细信息可以在这里找到。

1
  • 选择目标数据库(例如: use admin
  • 在所选数据库中创建用户

选择所需的数据库(例如:use admin

db.createUser(
   {
     user: "root",
     pwd: "root",
     roles: [ "readWrite", "dbAdmin" ]
   }
)

上述命令将在 admin 数据库中创建具有 readWritedbAdmin 角色的 root 用户。有关角色的更多信息 现在,使用 mongod --auth 命令以身份验证模式运行服务器。
运行客户端并提供用户名和密码以使用 db.auth("root","root") 登录。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接