2018年7月30日补充:
授权登录
在日常工作中我们不可能把数据库设置为免认证登录并暴露在公网下,所以我们需要为数据库添加用户名和密码,具体操作如下:(文章来自ChasenKaos,转发请注明。谢谢 原文:https://www.jianshu.com/p/994bc7b19b26)
1、修改前文提到的conf文件,命令如下:
$ cd /usr/mongodb $ vim mongodb.conf
打开后如图:
image.png
我们把noauth那一行,前面加上#,注释掉。
再在最后一行添加 auth = true
完整代码如下:
port=27017 #端口 dbpath= /usr/mongodb/db #数据库存文件存放目录 logpath= /usr/mongodb/log/mongodb.log #日志文件存放路径 logappend=true #使用追加的方式写日志 fork=true #以守护进程的方式运行,创建服务器进程 maxConns=100 #最大同时连接数 #noauth = true #不启用验证 journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。 #即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。 storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB auth = true #用户认证
保存退出。
2、关闭数据库
前文已经提到了方法,我这里只做操作,如图:
image.png
3、启动数据库
请参照前文方法,如图:
image.png
插曲:在添加用户名之前应该先执行./mongo命令先打开mongodb数据库
来自网友@OldX_cea8
4、依次执行下列命令 添加用户名
//使用admin数据库 use admin //给admin数据库添加管理员用户名和密码,用户名和密码请自行设置 db.createUser({user:"admin",pwd:"123456",roles:["root"]}) //验证是否成功,返回1则代表成功 db.auth("admin", "123456") //切换到要设置的数据库,以test为例 use test //为test创建用户,用户名和密码请自行设置。 db.createUser({user: "test", pwd: "123456", roles: [{ role: "dbOwner", db: "test" }]}) 执行完后,ctrl + c结束shell,并通过关闭,打开进行重启数据库。
5、通过robo 3t连接。
connection标签页
connection标签页
authentication标签页
authentication标签页
ssh标签页
ssh标签页
点击save后,连接即可,如果出现报错,请核对自己输入的信息是否有误。