Centos 7 Yum方式安装Mongdb 3.4

前端之家收集整理的这篇文章主要介绍了Centos 7 Yum方式安装Mongdb 3.4前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、配置YUM源

@H_502_2@
  • 官网的源下载太慢了,这里推荐阿里云Mongdb源

  • Centos 7

    [mongodb-org]
    name=MongoDB Repository
    baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/3.4/x86_64/
    gpgcheck=0
    enabled=1

    Centos 6

    [mongodb-org]
    name=MongoDB Repository
    baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/6Server/mongodb-org/3.4/
    gpgcheck=0
    enabled=1

    执行安装命令

    yum install mongodb-org -y
    chkconfig mongod on
    service mongodb restart

    二、修改配置文件

    修改监听地址

    bindip: 0.0.0.0

    开启登录认证

    修改配置文件
    vim /etc/mongodb.conf
    
    加入下列参数
    security:
       authorization: enabled
    
    重启mongodb
    sudo service mongodb restart

    三、MongoDB用户角色配置

    MongoDB基本的角色介绍:

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

    1、添加管理员

    使用命令`mongo`进入命令交互模式
    创建第一个用户,该用户需要有用户管理权限
    这里设置其角色为root
    
    $ use admin
    $ db.createUser({user:"root",pwd:"123456",roles:["root"]})
    
    新增的用户在system.users中
    
    $ db.getCollectionNames()
    [ "system.indexes","system.users","system.version" ]
    
    第一个用户添加完成后,便需要认证才能继续添加其他用户
    
    使用 $ db.auth("root","123456") 认证

    2、添加普通数据库用户

    为其他数据库添加用户添加用户前需要切换到该数据库
    
    这里设置其角色为dbOwner
    注:dbOwner具有管理当前数据库所有权限,对其他数据库无权限。
    
    $ use db1
    $ db.createUser({user: "db1",pwd: "123456",roles: [{ role: "dbOwner",db: "db1" }]})
    
    查看所有用户
    $ use admin
    switched to db admin
    $ db.system.users.find()

    3、相关命令参考

    **修改用户密码**
    
    db.updateUser( "admin",{pwd:"password"});
    
    
    **用户登录 密码认证(需要切换到相应数据库)**
    
    use admin
    db.auth("admin","password");
    
    
    **MongoDB连接信息查询**
    
    db.serverStatus().connections;
    MongoDB实例接受的最多连接数,如果高于操作系统接受的最大线程数,设置无效。net.maxIncomingConnections默认(65536)
    
    
    **关闭MongoDB服务**
    
    use admin;
    db.shutdownServer();
    
    
    **删除用户
    删除用户(需要root权限,会将所有数据库中的football用户删除)**
    
    db.system.users.remove({user:"football"});
    
    **删除用户(权限要求没有那么高,只删除本数据中的football用户)**
    db.dropUser("football");
    
    
    **查询所有用户**
    mongo 192.168.1.10/admin -u admin -p 123456
    > use admin
    switched to db admin
    > db.system.users.find();

    四、启动报错解决

    在系统上安装mongodb之后报错

    **错误信息:** 
    WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.We suggest setting it to ‘never’ 
    WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always’.We suggest setting it to ‘never’ 
    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.

    解决方案:

    前两个warning

    echo never >>  /sys/kernel/mm/transparent_hugepage/enabled
    echo never >>  /sys/kernel/mm/transparent_hugepage/defrag

    第三个warning

    vim /etc/security/limits.conf
    
    添加以下几行:
    
        * soft nofile 64000
        * hard nofile 64000
        mongod soft nproc 32000
        mongod hard nproc 32000

    重启mongod

    sudo service mongod restart

    **

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

    **

    $ mongo
    MongoDB shell version: 3.2.6
    connecting to: test
    >

    权限说明

    作为数据库软件,我们肯定不想谁都可以访问,为了确保数据的安全,MongoDB 也会像其他的数据库软件一样可以采用用户验证的方法,那么该怎么做呢? 其实很简单,MongoDB 提供了 addUser 方法,该方法包含三个参数:

    ● user - 字符串,表示用户名
      ● password - 字符串,对应的密码bushao
      ● readOnly - boolean,可选参数,默认值为 false,表示是否是只读用户
    
    添加用户:db.addUser("guest","pass",true)
    修改用户密码: db.addUser("guest","newpass")
    删除用户: db.removeUser("guest")

    更复杂的使用方式请参考官方文档

    可以将 MongoDB 的用户分为两类:超级用户数据库用户。
    超级用户拥有最大权限,可以对所有数据库进行任意操作,超级用户储存在 admin 数据库中,刚安装的 MongoDB 中 admin 数据库是空的;数据库用户存储在单个数据库中,只能访问对应的数据库。
    另外,用户信息保存在 db.system.users 中。

    关于用户和权限有以下特性:

    1. 数据库是由超级用户来创建的,一个数据库可以包含多个用户,一个用户只能在一个数据库下,不同数据库中的用户可以同名
      2. 如果在 admin 数据库中不存在用户,即使 mongod 启动时添加了 –auth 参数,此时不进行任何认证还是可以做任何操作
      3. 在 admin 数据库创建的用户具有超级权限,可以对 MongoDB 系统内的任何数据库的数据对象进行操作
      4. 特定数据库比如 test1 下的用户 test_user1,不能够访问其他数据库 test2,但是可以访问本数据库下其他用户创建的数据
      5. 不同数据库中同名的用户不能够登录其他数据库。比如数据库 test1 和 test2 都有用户 test_user,以 test_user 登录 test1 后,不能够登录到 test2 进行数据库操作

    猜你在找的CentOS相关文章