博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos 7 Yum方式安装Mongdb 3.4
阅读量:7079 次
发布时间:2019-06-28

本文共 3814 字,大约阅读时间需要 12 分钟。

一、配置YUM源

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

Centos 7

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

Centos 6

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

执行安装命令

yum install mongodb-org -ychkconfig mongod onservice mongodb restart

二、修改配置文件

修改监听地址

bindip: 0.0.0.0

开启登录认证

修改配置文件vim /etc/mongodb.conf加入下列参数security:   authorization: enabled重启mongodbsudo 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 adminswitched to db admin$ db.system.users.find()

3、相关命令参考

**修改用户密码**db.updateUser( "admin",{pwd:"password"});**用户登录 密码认证(需要切换到相应数据库)**use admindb.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 adminswitched to db admin> db.system.users.find();**创建集合**db.createCollection("test123")**查看当前数据库**show dbs

四、启动报错解决:

在系统上安装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/enabledecho 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

**

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

**

$ mongoMongoDB shell version: 3.2.6connecting 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 进行数据库操作

转载地址:http://xnvml.baihongyu.com/

你可能感兴趣的文章
简单理解Ajax原理
查看>>
Delphi XE2 之 FireMonkey 入门(18) - TLang(多语言切换的实现)
查看>>
学用 ASP.Net 之 System.DateTime 结构
查看>>
我的友情链接
查看>>
互联网枭雄点评之周鸿祎 - 不甘老去的互联网老兵
查看>>
PKI_IOS证书加密L2L ×××
查看>>
web基础
查看>>
Apache和Nginx的区别
查看>>
2017.5.23 MS Power BI workshop for partner
查看>>
翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 8 章:列表操作...
查看>>
Linux常用的系统监控shell脚本
查看>>
Android Studio中使用GreenDao
查看>>
Yii 框架之采用自带的jquery库实现ajax分页
查看>>
负载均衡小demo,未实现session共享
查看>>
Android广播-个人总结
查看>>
redis java客户端Jedis 实现 连接池 + 简单的负载均衡
查看>>
python的string.strip(s[, chars])方法的各种小细节
查看>>
new Date() 在Safari下的 Invalid Date问题
查看>>
Mac OSX升级10.14后,sequel pro关闭时闪退crash解决办法
查看>>
Mybatis 框架源码分析
查看>>