我今天首先安装了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]。
答案 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)
use admin
)选择所需的数据库(exp use admin
)
db.createUser(
{
user: "root",
pwd: "root",
roles: [ "readWrite", "dbAdmin" ]
}
)
上述命令将在root
数据库中创建角色 readWrite
和dbAdmin
的{{1}}用户。 more info about roles
现在,使用admin
运行客户端并使用mongod --auth