mongoDB系列之(转)

https://www.cnblogs.com/ee900222/p/mongodb_1.html


启动mongoDB 参数 --fork 是后台启动的参数






mongoDB系列之(一):10分钟玩转mongoDB

1. mongoDB是什麽

mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。

存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary JSON)。

模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。

mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。

2. 安装mongoDB

MongoDB安装很简单,基本无需安装,安装包解压后即可使用。

2.1 用tar包安装

2.1.1 从官网下载最新版本mongoDB的tar包,解压

1

2

3

4

# curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.7.tgz

# tar -zxvf mongodb-linux-x86_64-3.0.7.tgz

# mkdir -p mongodb

# cp -R -n mongodb-linux-x86_64-3.0.7/ mongodb

2.1.2 创建数据目录

1# mkdir -p /data/mongodb

2.1.3 启动mongoDB,有两种方法:

命令行指定数据目录启动

1# mongod --dbpath /data/mongodb --logpath /var/log/mongodb.log

指定配置文件启动

1# mongod -f /etc/mongod_27019.conf

2.1.4 停止mongoDB

1# mongod -f /etc/mongod_27019.conf --shutdown

2.2 用yum安装

本文例子是在Cent OS 7上进行安装,mongoDB版本是3.0

2.2.1 添加yum源

1

2

3

4

5

6

# vi /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0]

name=MongoDB Repository

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

gpgcheck=0

enabled=1

2.2.2 安装mongoDB

1# yum install -y mongodb-org

2.2.3 启动mongoDB

1# systemctl start mongod

设定文件位置:/etc/mongod.conf

数据库路径:/var/lib/mongo

2.2.4 问题点

1WARNING: Readahead for /var/lib/mongo is set to 4096KB

1. 日志里出现上面的信息,需要调整Readahead的大小

1

2

3

# blockdev --report

# blockdev --setra 256 /dev/sda

# blockdev --setra 256 /dev/dm-1

2. 日志里出现下面信息,需要修改内核参数

1WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.

关闭透明大页

1

2

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

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

3. Cent OS 7上需要把mongoDB添加到systemd,否则会出现下面的错误

1systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..

将mongoDB添加到systemd

1

2

3

4

5

6

7

8

9

10

11

12

13

# vi /usr/lib/systemd/system/mongod.service

[Unit]

Description=mongodb database


[Service]

User=mongod

Group=mongod

Environment="OPTIONS=--quiet -f /etc/mongod.conf"

ExecStart=/usr/bin/mongod $OPTIONS run

PIDFile=/var/run/mongodb/mongod.pid


[Install]

WantedBy=multi-user.target

建立链接

1# ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/

重新加载systemctl

1# systemctl daemon-reload

2.3 设定文件说明

设定文件 /etc/mongod.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

processManagement:

   fork: true


net:

   bindIp: 127.0.0.1

   port: 27017


storage:

   dbPath: /srv/mongodb


systemLog:

   destination: file

   path: "/var/log/mongodb/mongod.log"

   logAppend: true


storage:

   journal:

      enabled: true

processManagement.fork: true 以daemon模式启动mongod

net.bindIp: 指定IP,逗号分隔,注释掉的情况下,服务启动在0.0.0.0

systemLog.quiet: true 日志输出使用quiet模式,只输出critical

storage.dbPath: 指定数据的存放位置

replication.replSetName: 副本集的名字

security.authorization: enabled 使用认证

security.keyFile: 使用keyFile

verbosity: 日志开启debug模式,0-5

operationProfiling.slowOpThresholdMs: slowlog设定,默认100

net.http.RESTInterfaceEnabled: rest接口是否有效

net.maxIncomingConnections: 最大连接数,默认65536,不能超过系统设置,# ulimit -n

3. 使用mongoDB

下面列出一些使用mongoDB的常用命令,其他还有很多,详细参照官方文档

3.1 连接mongoDB

1# mongo

 3.2 查看数据库

1> show dbs

3.2 切换数据库,没有的时候创建

1> use new2

3.3 查看collection

1

2

> show collections

> show tables

3.4 查看当前数据库状态

1> db.stats()

3.5 插入数据

1> db.user.insert({"username":"test1","age":12,"sex":"m"})

3.6 查找数据

查找集合中所有数据

1> db.user.find()

指定条件查找数据

1

2

> db.user.find({age: {$gt: 10}});

> db.user.find({sex: /m/});

3.7 统计数据

1> db.user.count()

指定条件统计数据

1> db.user.count({sex: "m"});

3.8 删除记录

1> db.user.remove({age: 12});

3.9 删除collection

1> db.user.drop()

3.10 复制数据库

1> db.copyDatabase("new2", "new3", "127.0.0.1");

3.11 删除当前数据库

1> db.dropDatabase();

3.12 释放空间

1> db.repairDatabase()

3.13 停止mongodb

1

2

> use admin

> db.shutdownServer()

3.14 帮助文件

1

2

> help

> db.help()

4. mongoDB状态页面

4.1 打开自带的状态页

1

2

3

4

5

# vi /etc/mongod.conf

net:

  port: 27017

  http:

    enabled: true

4.2 浏览器访问

http://IP:28017/

5. 后记

本文只是初步学习一下mongoDB的安装和使用,副本集,分片等功能,接下来会进行介绍。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容