当先锋百科网

首页 1 2 3 4 5 6 7
 mongoDB是什麽
mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。
存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary JSON)。
模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。
mongodb中有三元素:数据库,集合,文档,其中“集合”就是对应关系数据库中的“表”,“文档”对应“行”。

windows7下面安装好了mongodb.msi后;还需要配置一个db,即是mongodb的数据库:

1.安装的mongodb文件:
D:\MongoDB\Server\3.4\bin
2.新建的一个数据库文件和一个日志文件
D:\MongoDB\data\db(以后启动数据库的时候就会用到它了)
D:\MongoDB\data\log
3.运行cmd.exe进入dos命令界面,执行下列命令,启动MongoDB
  > cd d:\mongodb\bin
  > d:\mongodb\bin>mongod -dbpath “d:\mongodb\data\db”
看到如图信息则说明启动成功,默认MongoDB监听的端口是27017,mysql的是3306
4.一个shell管理后台
D:\MongoDB\Server\3.4\bin\mongo.exe(管理你的数据库)

3步要启动后4步才链接。4步要链接必须3步先启动。


2. 安装mongoDB
MongoDB安装很简单,基本无需安装,安装包解压后即可使用。
2.1 用tar包安装
2.1.1 从官网下载最新版本mongoDB的tar包,解压

$ 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 创建数据目录

$ mkdir -p /data/mongodb

2.1.3 启动mongoDB,有两种方法:
命令行指定数据目录启动

$ mongod –dbpath /data/mongodb –logpath /var/log/mongodb.log

指定配置文件启动

$ mongod -f /etc/mongod_27019.conf

停止mongoDB

$ mongod -f /etc/mongod_27019.conf –shutdown

2.2 用yum安装
本文例子是在Cent OS 7上进行安装,mongoDB版本是3.0
2.2.1 添加yum源

$ 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

$ yum install -y mongodb-org

2.2.3 启动mongoDB

$ systemctl start mongod

设定文件位置:/etc/mongod.conf
数据库路径:/var/lib/mongo
2.2.4 问题点

WARNING: Readahead for /var/lib/mongo is set to 4096KB
1. 日志里出现上面的信息,需要调整Readahead的大小

blockdevreport blockdev –setra 256 /dev/sda
$ blockdev –setra 256 /dev/dm-1

2. 日志里出现下面信息,需要修改内核参数
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
3. Cent OS 7上需要把mongoDB添加到systemd,否则会出现下面的错误
systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
将mongoDB添加到systemd

vi/usr/lib/systemd/system/mongod.service[Unit]Description=mongodbdatabase[Service]User=mongodGroup=mongodEnvironment=OPTIONS=quietf/etc/mongod.confExecStart=/usr/bin/mongod OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid
[Install]
WantedBy=multi-user.target

建立链接

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

重新加载systemctl

$ systemctl daemon-reload

 设定文件说明
设定文件 /etc/mongod.conf

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

$ mongo

3.2 查看数据库

$ show dbs

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

$ use new2

 查看collection
> show collections
> show tables
 查看当前数据库状态
> db.stats()
 插入数据
> db.user.insert({"username":"test1","age":,"sex":"m"})
 查找数据
查找集合中所有数据
> db.user.find()
指定条件查找数据
> db.user.find({age: {$gt: }});
> db.user.find({sex: /m/});
 统计数据
> db.user.count()
指定条件统计数据
> db.user.count({sex: "m"});
 删除记录
> db.user.remove({age: });
 删除collection
> db.user.drop()
 复制数据库
> db.copyDatabase("new2", "new3", "127.0.0.1");
 删除当前数据库
> db.dropDatabase();
 释放空间
> db.repairDatabase()
 停止mongodb
> use admin
> db.shutdownServer()
 帮助文件
> help
> db.help()
 mongoDB状态页面
 打开自带的状态页
# vi /etc/mongod.conf
net:
port: 
http:
enabled: true
 浏览器访问
http://IP:/
 后记
本文只是初步学习一下mongoDB的安装和使用,副本集,分片等功能,接下来会进行介绍。