MongoDb(一)安装和配置

(一)下载和安装

环境:mongodb服务 4.2.5

之后博客mongodb模块都是基于此环境进行操作

安装包(一个本地服务器和工具连接):

   链接:https://pan.baidu.com/s/1LCqAqaMaZLYFJakD3xPvXg
   提取码:3rzk

安装文档参考:https://www.cnblogs.com/nangezi/p/11279401.html

首先先关闭防火墙:
控制面板–>系统安全

安装唯一不同的是:我在与bin目录同级之下建一个data,data中建db和logs

在这里插入图片描述
环境变量:在系统变量的Path中加入 D:\mongodb\bin

(二)开启(两种方式)关闭服务和客户端连接工具

(1)开启服务:
mongod -dbpath D:\mongodb\mongodbServer\data\db (每次都是这样启动)
在这里插入图片描述
开启客户端连接工具:
在这里插入图片描述

另外在打开一个bin的命令窗口随后:
输入 mongo
在这里插入图片描述
(2)以授权方式启动mongodb服务,并验证权限

设置配置文件mongod.cfg(在mongo安装目录的bin目录下),以官方方式打开授权认证:
在这里插入图片描述

net start mongodb 

在这里插入图片描述
开启客户端带验证密码(这一步只是作为验证只要服务开启了,在客户端中连接就行了,输入验证账户和密码)

mongo --port 27017 -u "admin" --authenticationDatabase "admin" -p

在这里插入图片描述

关闭服务(admin数据库服务关闭后其他都关闭了):

具体可以参考https://www.cnblogs.com/jinhengyu/p/10257805.html

在登录验证命令窗口进行关闭服务

use admin

db.shutdownServer()

在这里插入图片描述
Mongodb是基于角色来管理权限的:
在这里插入图片描述
在这里插入图片描述
(三) 给每个库设置账户和密码(添加 dbOwner 权限。自己的账户和面有道云笔记中有):

1、同样免密开启数据库服务
2、链接到某一个库
> use cc_cs
switched to db cczyy_cs
 
3、为该库设置账户
> db.createUser({
    'user':'zhangsan',    //链接数据库的账户名
    'pwd':'lisi',                //密码
    'roles':[
            {
                role:'dbOwner',
                db:'cc_cs'
              }
      ]
})
Successfully added user: {
    "user" : "zhangsan",
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "cc_cs"
        }
    ]
}
 
4、连接到 admin库(设立的账号密码全得切换admin在看),查看你刚才创建的cc_cs库的账户
> use admin
switched to db admin
> db.system.users.find().pretty()
{
//  _id字段:cc_cs 是当前用户所属的数据库的名称;
//  zhangsan  是你设置的账户名  
    "_id" : "cc_cs.zhangsan",
    "user" : "zhangsan",
    "db" : "cc_cs",
    "credentials" : {
        "SCRAM-SHA-1" : {
            "iterationCount" : 10000,
            "salt" : "dGurhbdFOAtEvjvf+IrWOg==",
            "storedKey" : "4tU/9+R6sQSL+4QvhmykRAUwioQ=",
            "serverKey" : "MmHTwuP2lnkO8LpFFEArrFE7VFY="
        }
    },
    "roles" : [
        {
            "role" : "dbOwner",
            "db" : "cc_cs"
        }
    ]
}
 
5、关闭mongo并有密启动

use admin
db.shutdownServer()

6、链接数据库以后

> use cc_cs
switch cc_cs
> db.auth('zhangsan','lisi')
1        //验证成功
>show collections
user
students 

查看账户和密码:(先切换到admin)

db.system.users.find().pretty()

删除一个库的账号和密码:

db.system.users.remove({'user':'adminUser'})

代码:

//MongoCredential credential = MongoCredential.createCredential("admin", "admin", "123456".toCharArray());
MongoCredential credential = MongoCredential.createCredential("LJ", "mongodb_richfit", "hlr2261226HLR".toCharArray());
//连接到Mongodb服务
ServerAddress serverAddress = new ServerAddress("127.0.0.1",27017);
com.mongodb.MongoClient mongoClient = new com.mongodb.MongoClient(serverAddress, Arrays.asList(credential));
MongoDatabase database = mongoClient.getDatabase("richfit_mongodb");
MongoCollection<Document> collection = database.getCollection("byuser");

(四)命令操作

在打开mongo的cmd命令窗口:

// 显示所有的数据库
show dbs
//切换到admin 这个是切换到哪个数据库 (admin和其他都行)
//切换到这个库操作表时必须保证有这个表不然数据为空
use admin 
//创建数据库账户和密码(只在安装时操作一次)
db.createUser({user:'root',pwd:'root',roles:['userAdminAnyDatabase']})
db.auth('root','root')

在这里插入图片描述
随后在在里面用命令操作数据:
在这里插入图片描述

发布了246 篇原创文章 · 获赞 12 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41987908/article/details/105088264