资讯专栏INFORMATION COLUMN

yum安装Mongdb3.4

褰辩话 / 978人阅读

摘要:默认关闭服务删除用户删除用户需要权限,会将所有数据库中的用户删除删除用户权限要求没有那么高,只删除本数据中的用户查询所有用户启动报错解决在系统上安装之后报错。另外,用户信息保存在中。比如数据库和都有用户,以登录后不能够登录到进行数据库操作

</>复制代码

  1. Centos 7
  2. [mongodb-org]
  3. name=MongoDB Repository
  4. baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.4/x86_64/
  5. gpgcheck=0
  6. enabled=1
  7. Centos 6
  8. [mongodb-org]
  9. name=MongoDB Repository
  10. baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/6Server/mongodb-org/3.4/
  11. gpgcheck=0
  12. enabled=1

</>复制代码

  1. yum install mongodb-org -y
  2. chkconfig mongod on
  3. service mongodb restart
  4. 修改监听地址
  5. bindIp: 0.0.0.0
  6. 开启认证
  7. 修改配置文件/etc/mongodb.conf
  8. security:
  9. authorization: enabled
  10. 重启mongodb
  11. sudo service mongodb restart
MongoDB用户角色配置

</>复制代码

  1. 基本知识介绍
  2. MongoDB基本的角色:
  3. 1.数据库用户角色:read、readWrite;
  4. 2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
  5. 3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  6. 4.备份恢复角色:backuprestore
  7. 5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  8. 6.超级用户角色:root
  9. userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限
  10. //这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
  11. 其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限
添加管理员

使用命令mongo进入命令行
创建第一个用户,该用户需要有用户管理权限
这里设置其角色为root

</>复制代码

  1. use admin
  2. db.createUser({user:"root",pwd:"123456",roles:["root"]})

新增的用户在system.users中

</>复制代码

  1. > db.getCollectionNames()
  2. [ "system.indexes", "system.users", "system.version" ]

第一个用户添加完成后,便需要认证才能继续添加其他用户

</>复制代码

  1. 使用db.auth("root", "123456")认证
添加普通数据库用户

为其他数据库添加用户,添加用户前需要切换到该数据库
这里设置其角色为dbOwner

</>复制代码

  1. use db1
  2. db.createUser({user: "db1", pwd: "123456", roles: [{ role: "dbOwner", db: "db1" }]})

查看用户

</>复制代码

  1. > use admin
  2. switched to db admin
  3. > db.system.users.find()
命令参考

</>复制代码

  1. 3.1、修改用户密码
  2. db.updateUser( "admin",{pwd:"password"});
  3. 3.2、密码认证
  4. db.auth("admin","password");
  5. 3.3MongoDB连接信息查询
  6. db.serverStatus().connections;
  7. MongoDB实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。net.maxIncomingConnections默认(65536)
  8. 3.4、关闭MongoDB服务
  9. use admin;
  10. db.shutdownServer();
  11. 3.5、删除用户
  12. 删除用户(需要root权限,会将所有数据库中的football用户删除)
  13. db.system.users.remove({user:"football"});
  14. 删除用户(权限要求没有那么高,只删除本数据中的football用户)
  15. db.dropUser("football");
  16. 3.6 查询所有用户
  17. mongo 192.168.1.247/admin -u admin -p 123456
  18. > use admin
  19. switched to db admin
  20. > db.system.users.find();
启动报错解决:

在系统上安装mongodb之后报错。
错误信息:

</>复制代码

  1. WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.We suggest setting it to ‘never’
  2. WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always’.We suggest setting it to ‘never’
  3. WARNING: soft rlimits too low. rlimits set to 1024 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.

解决方案:

</>复制代码

  1. 前两个warning
  2. echo never >> /sys/kernel/mm/transparent_hugepage/enabled
  3. echo never >> /sys/kernel/mm/transparent_hugepage/defrag
  4. 第三个warning
  5. vim /etc/security/limits.conf
  6. 添加一下几行
  7. * soft nofile 64000
  8. * hard nofile 64000
  9. mongod soft nproc 32000
  10. mongod hard nproc 32000

重启mongod

</>复制代码

  1. sudo service mongod restart

成功
重启成功之后,所有报错都没啦,如下

</>复制代码

  1. ➜ ~ git:(master) mongo
  2. MongoDB shell version: 3.2.6
  3. connecting to: test
  4. >
权限说明

</>复制代码

  1. 作为数据库软件,我们肯定不想谁都可以访问,为了确保数据的安全,MongoDB 也会像其他的数据库软件一样可以采用用户验证的方法,那么该怎么做呢?其实很简单,MongoDB 提供了 addUser 方法,该方法包含三个参数:
  2. user - 字符串,表示用户名
  3. password - 字符串,对应的密码bushao
  4. readOnly - boolean,可选参数,默认值为 false,表示是否是只读用户
  5. 添加用户:db.addUser("guest", "pass", true)
  6. 修改用户密码: db.addUser("guest", "newpass")
  7. 删除用户: db.removeUser("guest")
  8. 更复杂的使用方式请参考官方文档。
  9. 可以将 MongoDB 的用户分为两类:超级用户和数据库用户。超级用户拥有最大权限,可以对所有数据库进行任意操作,超级用户储存在 admin 数据库中,刚安装的 MongoDBadmin 数据库是空的;数据库用户存储在单个数据库中,只能访问对应的数据库。另外,用户信息保存在 db.system.users 中。
  10. 关于用户和权限有以下特性:
  11. 数据库是由超级用户来创建的,一个数据库可以包含多个用户,一个用户只能在一个数据库下,不同数据库中的用户可以同名
  12. 如果在 admin 数据库中不存在用户,即使 mongod 启动时添加了 –auth 参数,此时不进行任何认证还是可以做任何操作
  13. 在 admin 数据库创建的用户具有超级权限,可以对 MongoDB 系统内的任何数据库的数据对象进行操作
  14. 特定数据库比如 test1 下的用户 test_user1,不能够访问其他数据库 test2,但是可以访问本数据库下其他用户创建的数据
  15. 不同数据库中同名的用户不能够登录其他数据库。比如数据库 test1 和 test2 都有用户 test_user,以 test_user 登录 test1 后,不能够登录到 test2 进行数据库操作

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/19361.html

相关文章

  • 『学了就忘』Linux软件包管理 — 46、yum命令详细介绍

    摘要:需要自己手动安装包查询指定软件包的信息。而手动安装,必须区分包名和包全名。升级本机所有软件包提示上边这条命令不加最后的包名,会升级系统中所有的软件包。目录1、yum命令的查询操作2、使用yum命令安装服务3、使用yum命令升级服务4、使用yum命令卸载服务5、yum组管理命令(1)查询可以安装的软件组(2)查询软件组内包含的软件(3)安装软件组(4)卸载软件组1、yum命令的查询操作(1)查...

    cikenerd 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<