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

叁歲伎倆 2024-04-01 12:49 162阅读 0赞

文章目录

  • 下载安装,启动
  • mongodb6安装shell
  • 查看数据命令
  • 插入数据命令
  • 更新数据命令
  • 删除数据命令
  • 创建认证
  • 修改认证
    • 第一步:关闭认证重启
    • 第二步:删除认证
    • 第三步:添加新认证,打开配置里的认证
    • 第四步:重启验证

下载安装,启动

  1. #下载 mongodb6
  2. curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-6.0.3-rc2.tgz
  3. #解压
  4. tar -zxvf mongodb-linux-x86_64-rhel80-6.0.3-rc2.tgz
  5. #将解压包拷贝到指定目录
  6. #文件夹名可能不对
  7. mv mongodb-linux-x86_64 /usr/local/mongodb
  8. # 配置环境
  9. export PATH=$PATH:mongodb6路径/bin
  10. # 或者手动修改文件
  11. vim /etc/profile
  12. source /etc/profile
  13. # 创建数据库、日志、进程、目录
  14. # 注意和mongodb.conf保持一致
  15. mkdir data
  16. touch db
  17. mkdir log
  18. mkdir pid
  19. # 启动mongodb,注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。
  20. ./mongod
  21. # 指定db文件路径启动
  22. ./mongod --dbpath=/path/mongodb
  23. #以授权身份认证方式启动
  24. ./mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork --auth
  25. # 自定义配置文件启动,新建mongodb.conf,里面配置路径。“fork: 以守护进程的方式运行MongoDB。
  26. ./mongod --config /usr/local/mongodb/conf/mongodb.conf --fork

conf下创建配置文件mongodb.conf

  1. dbpath=/usr/local/mongodb/data/
  2. #日志保存路径
  3. logpath=/usr/local/mongodb/log/mongo.log
  4. #进程描述文件
  5. pidfilepath=/usr/local/mongodb/pid/mongo.pid
  6. #日志追加写入
  7. logappend=true
  8. bind_ip_all=true
  9. #mongo默认端口
  10. port=27017
  11. #操作日志容量
  12. oplogSize=10000
  13. #开启子进程
  14. fork=true
  15. #需要登录认证
  16. auth=true

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

mongodb6安装shell

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

查看数据命令

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

插入数据命令

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

存在更新不存在插入

  1. db.col.save({
  2. "_id" : ObjectId("56064f89ade2f21f36b03136"),
  3. "title" : "MongoDB",
  4. "description" : "MongoDB 是一个 Nosql 数据库",
  5. "by" : "Runoob",
  6. "url" : "http://www.runoob.com",
  7. "tags" : [
  8. "mongodb",
  9. "NoSQL"
  10. ],
  11. "likes" : 110
  12. })

更新数据命令

  1. db.collection.update(
  2. <query>,
  3. <update>,
  4. {
  5. upsert: <boolean>,
  6. multi: <boolean>,
  7. writeConcern: <document>
  8. }
  9. )

删除数据命令

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

创建认证

  1. db.createUser({
  2. user: 'wangmoumo',
  3. pwd: '123456',
  4. roles:[{
  5. role: 'readWrite',
  6. db: 'test'
  7. }]
  8. })

提示使用错误的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

修改认证

第一步:关闭认证重启

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

在这里插入图片描述

第二步:删除认证

  1. # 重启mongodb
  2. systemctl restart mongod
  3. # 或者这样重启
  4. ./mongod --config /usr/local/mongodb/conf/mongodb.conf --fork
  5. # 进入mongodb操作
  6. use admin
  7. db.system.users.find()
  8. db.system.users.remove({
  9. })

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

第四步:重启验证

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,162人围观)

还没有评论,来说两句吧...

相关阅读