MongoDB:服务器有启动警告

时间:2016-04-16 04:28:58

标签: windows mongodb

我今天首先安装了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]
>

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

3 个答案:

答案 0 :(得分:30)

您尚未在Mongodb中配置安全功能,如授权和身份验证。使用此link了解更多详情。如果你要学习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 :(得分:3)

运行class Widget : public QWidget { Q_OBJECT int idx=0; QTimer timer; QPainterPath path; QRect boundingRect; public: explicit Widget(QWidget *parent=0); void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE; public: QStringList list; float x=0; QPointF aa; public slots: void changeT(){update(boundingRect);} }; Widget::Widget(QWidget *parent) : QWidget(parent),aa(0,0) { connect(&timer,SIGNAL(timeout()),this,SLOT(changeT())); timer.start(25); } void Widget::paintEvent(QPaintEvent *event) { QPainter painter; painter.begin(this); painter.setPen(QPen(Qt::black, 0.5, Qt::SolidLine, Qt::RoundCap)); path.moveTo(aa); boundingRect.setTopLeft(QPoint(x,0)); boundingRect.setSize(QSize(30*0.25,500)); if(idx+25>list.size()) idx=0; for(int i=idx; i<idx+25 ; i++) { const float y=list.at(i).toInt(); QPointF bb(x, y); x+=0.25; if(x>750) { qDebug()<<"hi:" <<"y"<<y; x=0; path = QPainterPath(); path.moveTo(x,y); aa.setX(x); aa.setY(y); bb.setX(x); } path.quadTo(aa,bb); aa=bb; } idx+=25; painter.drawPath(path); QWidget::paintEvent(event); painter.end(); } 以启用访问控制。详细信息可以在here找到。

答案 2 :(得分:1)

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

选择所需的数据库(exp use admin

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

上述命令将在root数据库中创建角色 readWritedbAdmin的{​​{1}}用户。 more info about roles

现在,使用admin

以身份验证模式运行服务器

运行客户端并使用mongod --auth

提供用户名和密码登录