简介:

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

>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

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

内建的角色:

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#远程连接----指定服务器

Mongodb安装与配置详解的更多相关文章

  1. Linux下MongoDB安装和配置详解

    1.下载安装包 将解压到/usr/local/mongodb 文件夹下 # mkdir /usr/local/mongodb # tar zxvf mongodb-linux-x86_64-3.2.9 ...

  2. libCURL开源库在VS2010环境下编译安装,配置详解

    libCURL开源库在VS2010环境下编译安装,配置详解 转自:http://my.oschina.net/u/1420791/blog/198247 http://blog.csdn.net/su ...

  3. Nginx安装及配置详解【转】

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  4. [转帖]Nginx安装及配置详解 From https://www.cnblogs.com/zhouxinfei/p/7862285.html

    Nginx安装及配置详解   nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP ...

  5. nginx在linux上的安装与配置详解(一)

    Nginx的安装与配置详解 (1)nginx简介     nginx概念: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like ...

  6. Linux中Nginx安装与配置详解

    转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...

  7. Tomcat安装及配置详解

    Tomcat安装及配置详解   一,Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Found ...

  8. OpenVPN CentOS7 安装部署配置详解

    一 .概念相关 1.vpn 介绍 vpn 虚拟专用网络,是依靠isp和其他的nsp,在公共网络中建立专用的数据通信网络的技术.在vpn中任意两点之间的链接并没有传统的专网所需的端到端的物理链路,而是利 ...

  9. Linux NFS服务器的安装与配置详解

    一.NFS服务简介 NFS是Network File System(网络文件系统).主要功能是通过网络让不同的服务器之间可以共享文件或者目录.NFS客户端一般是应用服务器(比如web,负载均衡等),可 ...

随机推荐

  1. 我与solr(五)--关于schema.xml中的相关配置的详解

    先把文件的代码贴上来: <?xml version="1.0" encoding="UTF-8" ?> <!-- 版权说明... --> ...

  2. [Linux] xargs

    xargs 命令可以将一个命令的输出,作为另一个命令的输入! 这里听来好像是管道的功能,之所以有xargs是因为有的命令不知吃管道,这时xargs就派上用场了! 具体的方法是:前一个命令的输出会使用空 ...

  3. [UCSD白板题] Number of Inversions

    Problem Introduction An inversion of a sequence \(a_0,a_1,\cdots,a_{n-1}\) is a pair of indices \(0 ...

  4. Shmget 参数 0600的解释

    Shmget 参数 0600的解释 0660 百位6 -- 本用户有读写权. 十位6 -- 同组用户有读写权,个位0 -- 其它用户无读写执行权.与chmod 设法一样.

  5. [转]Android开发:Parallax效果的ScrollerView,改编自ParallaxListView

    https://github.com/nirhart/ParallaxScroll这个gethub上的地址 本文转自http://www.2cto.com/kf/201502/376970.html ...

  6. LR loadrunner参数化-笔记

      LR在录制程序运行的过程中,VuGen(脚本生成器) 自动生成了包含录制过程中实际用到的数值的脚本,如果你企图在录制的脚本中使用不同的数值执行脚本的活动(如查询.提交等等),那么你必须用参数值取代 ...

  7. 查询Oracle锁表和解决方法

    Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容.(1)锁表查询的代码有以下的形式:select count( ...

  8. opencl初体验

    总结一下,opencl的步骤差不多是这些 先要获取平台的id clGetPlatformIDs(nPlatforms, platform_id, &num_of_platforms) 然后获取 ...

  9. Xamarin.Android绑定库分享

    使用Xamarin.Android时,会用到各种第三方库,而这些库基本上是java编写的,要在Xamarin.Android中使用这些库,就需要通过Android Binding Project绑定对 ...

  10. SqlServer2012 数据库的同步之SQL JOB + 建立链接服务器

         文章参考百度过的文章,现在忘了具体哪篇,感谢其分享,这里根据自己的操作和遇到的问题整理一下.      需求:在两个不同的SQL SERVER 2012的服务器之间进行数据访问和更新.我们需 ...