Mongodb安装与配置详解


简介:

mongodb作为一款通用型数据库,除了能够创建,读取,更新和删除数据外,还提供一系列不断扩展的独特功能。

a.索引: mongodb支持二级索引,允许多种快速查询,且提供和唯一索引,复合索引,地理空间索引,以及全文索引。

b.聚合: 用户能够通过简单的片段创建复杂的聚合,并通过数据库自动优化。

c.特殊的集合类型: 支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话,也支持固定大小的集合,适用于保存近期数据,如日志 。

d.文件存储: 支持一种非常易用的协议,用于存储大文件和文件元数据。 mongodb并不具备一些在关系型数据库中的普遍功能,如连接和复杂的多行事务。省略这些功能是出于架构上的考虑,为了得到更好的扩展性, 因为在分布式系统中,这两个功能难以高效的实现。

MongoDB的一个主要目标是提供卓越的性能,MongoDB能对文档进行动态的填充,也能预分配是护具文件以利用额外的空间来换取 稳定的性能。MongoDB把尽可能多的内存用作缓存,试图为每次的查询选择正确的索引。

注: 1.不能含有空字符(\0),这个字符表示键的结尾。

2.$和.具有特殊的意义,只能在特定的环境下使用。

3.区分大小写。

4.文档不能含有重复的键值。

集合里可以存放任何文档,还有必要使用多个集合吗?

1.在一个集合里查询特定类型的文档在速度上不是 很划算。

2.把同种类型的文档放在一个集合里,数据会更加集中。

3.在一个集合中只放入一种类型的文档,可以更有效的对集合进行索引。

4.方便开发者和管理者。

MongoDB中,多个文档组成集合,多个集合组成数据库。

安装MongoDB:

1.创建mongo数据目录:

mkdir /data/mongodb

2.准备yum源:

vi /etc/yum.repos.d/mongodb-org-3.2.repo

[mongodb-org-3.2]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

3.安装:

yum -y install mongodb-org

4.创建数据库目录和日志目录:(数据库目录和日志目录的权限所属为mongod)

mkdir /data/mongodb/

# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # where to write logging data. systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log #日志文件 # Where and how to store data. storage: dbPath: /data/mongodb #数据文件 journal: enabled: true # engine: # mmapv1: # wiredTiger: # how the process runs processManagement: fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile # network interfaces net: port: 27017 #默认监听端口 bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces. security: #mongo3.2+开启认证方法 authorization: enabled #operationProfiling: #replication: #sharding: ## Enterprise-Only Options #auditLog: #snmp:

5.启动mongodb服务:

service mongod start

[ps1]:mongodb非正常关闭时,再次启动的异常处理:

a.正常关闭方法:service mongod stop--->service mongod start :不可以直接使用restart

b.非正常关闭以后需要删除mongodb.lock和mongod.log文件

c.删除文件以后,使用repair参数进行恢复:mongod --repair

d.恢复文件以后进行重启服务

e. 服务重启的时候要确保dbpath所在文件夹为空 #

[ps2]:将mongodb的数据文件指定到相应目录后,指定的目录权限所属的组应该为mongod !!!

[ps3]:mongodb3.0开启认证: security: authorization: enabled

6.连接数据库:

cd /usr/local/bin

./mongo

使用 --nodb,启动时不连接到任何数据库

conn = new Mongo("host:port")

db = conn.getDB("admin")

>show dbs #查看数据库

>use admin

>db.createUser(

{

user:"admin",

pwd:"kasumi",

roles:[{role:"userAdminAnyDatabase",db:"admin"}]

}

)

>db.auth("admin","kasumi"); #返回值为1,则授权成功。

创建拥有root权限的数据库用户:

>db.createUser({

user:"root",

pwd:"kasumi",

role:[{role:"root",db:"admin"}]

}

)

>db.auth("root","kasumi")

>exit

#使用拥有超级权限的用户登录,可以删除创建的其他用户。

db.createUser({user:"trader",pwd:"lean123",roles:[{role:"readWrite",db:"trader"}]});

内建的角色:

a.数据库用户角色:read,readWrite b.数据库管理角色:dbAdmin,dbOwner,userAdmin c.集群管理角色:clusterAdmin,clusterManager,clusterMonitor,hostManager d.数据恢复角色:backup,restore e.所有数据库角色:readAnyDatabase,readWriteAnyDatabase,userAdminAnyDatabase,dbAdminAnyDatabase f.超级用户角色:root g.这里还有几个角色间接或直接提供了系统太那个超级用户的访问:dbOwner,userAdmin,userAdminAnyDatabase h.内部角色:__system A.查看用户: >db.system.users.find() B.删除用户: >db.system.users.remove({user:"admin"})

7.mongodb认证连接:

./mongo admin -uadmin -p #连接时需要指定连接的数据库名称

./mongo 192.168.0.83/admin -uadmin -p#远程连接----指定服务器

优质内容筛选与推荐>>
1、Flask学习笔记
2、馈线的弯曲半径标准
3、Oracle_dataguard__11G_配置与维护手册
4、JSP 标准标签库(JSTL)之最常用的JSTL标签总结
5、C# Task中的Func, Action, Async与Await的使用


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号