Mongodb安装,登陆常用命令(亲测自用....)

下载安装,启动

#下载 mongodb6
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.3-rc2.tgz
#解压     
tar -zxvf mongodb-linux-x86_64-rhel80-6.0.3-rc2.tgz                         
 #将解压包拷贝到指定目录
 #文件夹名可能不对
mv  mongodb-linux-x86_64 /usr/local/mongodb   
# 配置环境               
export PATH=$PATH:mongodb6路径/bin
# 或者手动修改文件   
vim /etc/profile 
source /etc/profile
# 创建数据库、日志、进程、目录
# 注意和mongodb.conf保持一致
mkdir data
touch db
mkdir log
mkdir pid

# 启动mongodb,注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。
./mongod
# 指定db文件路径启动
./mongod --dbpath=/path/mongodb

#以授权身份认证方式启动
./mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork --auth

# 自定义配置文件启动,新建mongodb.conf,里面配置路径。“fork: 以守护进程的方式运行MongoDB。
./mongod --config /usr/local/mongodb/conf/mongodb.conf --fork 

conf下创建配置文件mongodb.conf

dbpath=/usr/local/mongodb/data/
#日志保存路径
logpath=/usr/local/mongodb/log/mongo.log
#进程描述文件
pidfilepath=/usr/local/mongodb/pid/mongo.pid
#日志追加写入
logappend=true
bind_ip_all=true
#mongo默认端口
port=27017
#操作日志容量
oplogSize=10000
#开启子进程
fork=true
#需要登录认证
auth=true

修改端口和ip如何启动命令登陆
在这里插入图片描述

mongodb6安装shell

#下载 mongoshell
curl -O https://downloads.mongodb.com/compass/mongosh-1.6.0-linux-arm64.tgz?_ga=2.99845018.504722044.1668826731-801243742.1663340239
#解压     
tar -zxvf mongosh-1.6.0-linux-arm64.tgz
# 配置环境               
export PATH=$PATH:mongoshell路径/bin
# 或者手动修改文件   
vim /etc/profile 
# 使用命令
./mongosh

查看数据命令

show dbs
show collections
db.集合名.find()
db.col.find().pretty() --结果格式更整齐

插入数据命令

-- 创建数据库
use DATABASE_NAME
--手动create创建不会消失,非临时;
db.createCollection("runoob")
-- 可以直接插入,默认创建集合
--默认只插入一条
db.runoob.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
});
-- 插入多条数据
-- 报错一般都是,多条数据格式问题
db.runoob.insert(
[
{ "_id" : ObjectId("5dba9edaa7c8952dba6bcaef"), "_class" : "com.dataservice.model.AIJobFieldModel", "type" : "topics", "label" : "abc", "value" : "j3" },
{ "_id" : ObjectId("5dba9edaa7c8952dba6bcaf0"), "_class" : "com.dataservice.model.AIJobFieldModel", "type" : "topics", "label" : "abc", "value" : "j4" }
]
);

存在更新不存在插入

db.col.save({
    "_id" : ObjectId("56064f89ade2f21f36b03136"),
    "title" : "MongoDB",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "Runoob",
    "url" : "http://www.runoob.com",
    "tags" : [
            "mongodb",
            "NoSQL"
    ],
    "likes" : 110
})

更新数据命令

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

删除数据命令

-- 删除当前数据库
db.dropDatabase()
-- 删除集合mycol2
db.mycol2.drop()

创建认证

db.createUser({
  user: 'wangmoumo',   
  pwd: '123456', 
  roles:[{
    role: 'readWrite',  
    db: 'test'     
  }]
})

提示使用错误的mongo角色,则需要明白MongoDB的数据库角色来匹配规则(不同内置角色分配不同权限,类似云服务器中的入站规则角色)。MongoDB 在每个数据库上提供 内置的数据库用户和数据库管理角色

总的来说,错误如下:除了admin,其他的roles不能用 root,根据需要选择所想要的role

大致的内置角色如下

数据库用户角色:
read:提供用户读取指定数据库(提供读取所有非系统集合和system.js集合上的数据)
readWrite:提供用户读写指定数据库(提供read角色的所有权限以及修改所有非系统集合和system.js集合上的数据)

数据库管理角色:
dbAdmin:执行管理任务
dbOwner:数据库所有者可以对数据库执行任何管理操作
userAdmin:在当前数据库上创建和修改角色和用户的能力

集群管理角色:(管理整个系统,而不仅仅是单个数据库。这些角色包括但不限于副本集和分片集群管理功能)

clusterAdmin:admin数据库可用,最大的集群管理访问
clusterManager:对集群的管理和监控操作
clusterMonitor:对监视工具的只读访问权限
hostManager:监控和管理服务器

备份和恢复角色,admin数据库包括以下用于备份和恢复数据的角色:
backup:备份数据所需的最低权限
restore:视情况提供从备份还原数据所需的权限

所有数据库角色:(以下角色在admin数据库上可用,并提供适用于除local和 之外的所有数据库的权限config):
readAnyDatabase:admin数据库可用,(提供与除和read之外的所有数据库相同的只读权限)
readWriteAnyDatabase:admin数据库可用,(提供与除和readWrite之外的所有数据库读写的权限)
userAdminAnyDatabase:admin数据库可用,(提供与除和 userAdmin之外的所有数据库相同的用户管理操作访问权限)
dbAdminAnyDatabase:admin数据库可用,(提供与除和dbAdmin之外的所有数据库相同的权限)

超级用户角色:root (admin数据库可用)
内部角色:__system

修改认证

第一步:关闭认证重启

# 关闭配置里的认证属性
vim /usr/localhost/mongodb/conf/mongodb.conf

在这里插入图片描述

第二步:删除认证

# 重启mongodb
systemctl restart mongod
# 或者这样重启
./mongod --config /usr/local/mongodb/conf/mongodb.conf --fork
# 进入mongodb操作
use admin 
db.system.users.find()
db.system.users.remove({})

在这里插入图片描述

第三步:添加新认证,打开配置里的认证

db.createUser({user:'userName',pwd:'passWord',roles:[{"role":"root","db":"admin"}]});
db.auth('userName', 'passWord');

在这里插入图片描述

# 打开配置里的认证属性
vim /usr/localhost/mongodb/conf/mongodb.conf

在这里插入图片描述

第四步:重启验证

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菠菜很好吃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值