已解决windows mongodb数据库频繁丢失

测试库总是几个小时候就没了。一看数据库里多了个“READ__ME_TO_RECOVER_YOUR_DATA”的数据库。原来是没设密码被整了。

我用自己的电脑cmd测试了一下远程服务器:mongosh "mongodb://远程主机号:27017"
直接进去了,好家伙,不用密码也不限ip,乐。

1、创建用户

cmd输入mongosh进入mongo,然后选择数据库:

use 数据库名;
db.createUser(  
  { user: "你的用户名",  
    pwd: "你的密码",  
    customData:{description:"数据库描述,如果不需要描述这行代码可以省略不写"},
    roles: [ { role: "readWrite", db: "数据库名" } ]  
  }  
)  

readWrite权限是:允许用户在指定数据库中读取和写入数据。

2、查看用户

show users;

3、删除用户

db.dropUser('要删除的用户名')

4、修改配置

先进入mongod.cfg文件(目录MongoDb目录inmongod.cfg),可以设置

net:
  bindIp: 127.0.0.1
security:
  authorization: enabled

bindIp设置仅本机可以访问。(0.0.0.0代表所有人都可以访问)
authorization代表访问数据库是否需要密码。

修改配置后重启生效:

net stop MongoDB
net start MongoDB

5、登陆

MongoDB Compass登陆:

用户创建完了,现在你可以用账户密码登陆你的数据库了。
原本你的登陆的链接是:

mongodb://localhost:27017

现在可以用下面命令进行链接了:

mongodb://用户名:用户密码@localhost:27017/数据库名

cmd登陆:

可以先测试一下无密码登陆能不能查看数据库:mongosh
企图查看数据库数据:
在这里插入图片描述
可以看到告诉你没权限,好,OK了。

现在用账号密码登陆:mongosh "mongodb://用户名:密码@localhost:27017/数据库名",已经可以查看和修改数据了。