MongoDB的安装及常用操作

匿名 (未验证) 提交于 2019-12-03 00:41:02
MongoDB

MongoDB简介

  • MongoDB是一款跨平台面向文档的数据库。可以实现高性能、高可用性,并且能够轻松扩展。是一个基于分布式文件存储的开源数据系统,在高负载的情况下,添加更多的节点,可以保证服务器性能。
  • MongoDB也是也是一个介于关系数据库和非关系型数据库之间的产品,是非关系型数据库中功能最丰富、最像关系型数据库的。MongoDB不在有“行”的概念,其运行方式主要两个概念:集合(collection)与文档(document)。

MongoDB的特点

  • MongoDB的特点包括面向集合存储、模式自由、丰富的查询语句以及多级索引、复制机制、易于水平扩展,可插入存储引擎、跨平台多语言支持等。
  • MongoDB安装简单,提供了面向文档存储功能,操作起来比较容易。
  • MongoDB提供了复制、高可用性和自动分片功能。如果负载增加需要更多的存储空间和更强的处理能力,它可以分布在计算机网络中的其他节点上,这就是所谓的分片。
  • MongoDB支持丰富的查询表达式,查询指令使用json形式的表级,可轻易查询文档中内嵌的对象及数组。

MongoDB使用领域

  • MongoDB可以为web应用提供可扩展的高性能数据存储解决方案,MongoDB主要适用领域有网站数据,分布式场景,数据缓存和json文档格式存储。适合大量数据量、高并发、弱事务的互联网应用,其内置的水平扩展机制提供了从几百万到十几亿级别的数据处理能力,可以很好的满足we2.0和移动互联网应用数据存储要求。

MongoDB的安装

  • MongoDB提供了Linux平台上的安装包,可以从官方网站http://www.mongodb.org/downloads上下载软件包。
  • MongoDB另一种简单的安装方式为选择yum安装形式

配置yum源

  • 新建yum源文件

vim /etc/yum.repos.d/mongodb-org.repo

[mongodb-org] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/     //选择3.6安装版本          gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc    //官方验证密匙网址

yum list
yum install mongodn-org

修改配置文件

vim /etc/mongodb.conf

# network interfaces net:   port: 27017            //服务监听端口   bindIp: 0.0.0.0        //修改服务监听地址,0.0.0.0表示任意网段

启动服务

systemctl stop firewalld.service
setenforce 0
mongod -f /etc/mongod.conf //启动服务
mongod -f /etc/mongod.conf --shutdown //停止服务
mongo --port27017 //或者mongo直接进入数据库

MongoDB的基本操作

增删改查

> show dbs     //查看数据库  > use school        //不存在会创建数据库  > db.dropDatabase() //删除数据库,在哪一个数据库下就删除哪一个数据库  > use info; //不存在会创建,不建立集合又会删除  > db.createCollection(‘a‘)          //创建集合a  > db.a.insert({"id":1,"name":"zhangsan"})   //插入数据,json键值对格式,如果一个键对应多个值,那么{"hobby":["sport","run"]}  > db.a.find()    //查看集合a中的是所有数据  > for(var i=2;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i})   //循环插入数据  > db.info.findOne({"id":10})      //查看指定行  > a=db.users.findOne({"id":2})    //查找指定记录并赋予别名a  > typeof(a.id)   //查看属性类型  > db.users.update({"id":10},{$set:{"name":"tom"}})  //  更改user集合中id=10中name  > show collections //查看当前数据库下所有集合,或者使用show tables  > db.a.drop()    //删除集合a

MongoDB多实例开启

  • 多实例的开启需要为另外一个实例创建一个单独配置文件,以及独立的数据文件存放目录以及日志独立日志文件及不同端口。在配置文件中唯一需要注意的是pid进程文件位置不能更改。

  • 复制独立配置文件

cp -p /etc/mongod.conf /etc/mongod2.conf

  • 修改独立配置文件

vim /etc/mongod2.conf

# where to write logging data. systemLog:   destination: file   logAppend: true   path: /data/mongodb/logs/mongodb2.log    //日志文件存放位置,该位置目录需要手动创建,便于管理  # Where and how to store data. storage:   dbPath: /data/mongodb/mongodb2    //数据文件存放位置,该位置目录需要手动创建,便于管理   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   //pid进程文件位置,在多实例配置文件中,此位置不可更改,需要跟主配置文件一致   timeZoneInfo: /usr/share/zoneinfo  # network interfaces net:   port: 27018       //修改端口号,每一个不同实例独立一个端口号   bindIp: 0.0.0.0   //监听服务IP地址
  • 创建数据文件存放目录和独立日志文件

mkdir -p /data/mongodb/mongodb2 //创建mongodb2数据文件存放目录
cd /data/mongodb
mkdir logs //创建日志文件目录
cd logs
touch mongodb2.logs //创建多实例独立日志文件
chmod 777 mongodb2.logs //权限放大,让MongoDB可以写入日志

  • 启动多实例

mongod -f /etc/mongod2.conf //指定配置文件启动
mongod --port 27018 //进入多实例独立数据库

导入导出

[root@localhost]# mongoexport -d school -c info -o /opt/school.json //-d 指定数据库database名称;-c指定集合collection名称;-o指定导出output位置,并命名以json为结尾的文件格式  [root@localhost]# mongoimport -d school -c info1 --file /opt/school.jso  //-d 指定要还原的数据库;-c指定要还原出的表名,不能跟已有的同名;--file指定还原的文件位置  条件操作 [root@localhost]# mongoexport -d school -c info1 -q ‘{"id":{"$eq":10}}‘ -o /opt/school1.json //条件导出,将school数据库中info1集合中id等于10的行导出

备份与恢复

[root@localhost]# mkdir /backup    //创建备份文件存放目录  [root@localhost]# mongodump -d school -o /backup/  //备份数据库  [root@localhost backup]# mongorestore -d school2 --dir=/backup/school  //恢复数据库,注意不可与现有数据库同名

复制数据库

[root@localhost]# db.copyDatabase("school","school2")

克隆集合

[root@localhost]# mongo --port 27018     //进入实例2数据库    > db.runCommand({"cloneCollection":"school.info","from":"192.168.144.114:27017"})    //将27017实例数据库school中的info集合克隆到本实例中 

创建管理用户

[root@localhost]# mongo    //进入数据库   > db.createUser({"user":"root","pwd":"123","roles":["root"]})   > db.auth("root","123")

进程管理

> db.currentOp()      显示      "opid" : 337,  > db.killOp(337)

原文:http://blog.51cto.com/13659253/2145030

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!