MongoDB安装及配置

MongoDB安装及配置

本次安装环境:Centos7、mongodb-linux-x86_64-rhel70-4.0.11-rc0.tgz

1、下载MongoDB源码包,并上传至服务器,解压至opt下

    tar -xzvf mongodb-linux-x86_64-rhel70-4.0.11-rc0.tgz

    mv mongodb-linux-x86_64-rhel70-4.0.11-rc0 mongodb

    mv mongodb /opt/

2、创建配置文件及相关目录

    touch mongodb.conf

    mkdir db

    mkdir log

    touch log/mongodb.log

3、编写配置文件( mongodb.conf )

    port=27017 #端口

    bind_ip = 0.0.0.0 #这样就可外部访问了,例如从win10中去连虚拟机中的MongoDB

    dbpath=/usr/mongodb/db #数据库存文件存放目录

    logpath=/usr/mongodb/log/mongodb.log #日志文件存放路径

    logappend=true #使用追加的方式写日志

    fork=true #以守护进程的方式运行,创建服务器进程

    maxConns=100 #最大同时连接数

    noauth=true #不启用验证

    #auth=true #启用验证

    journal=true #每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。即使宕机,启动时wiredtiger会先将数据恢复到最近一次的checkpoint点,然后重放后续的journal日志来恢复。

    storageEngine=wiredTiger #存储引擎有mmapv1、wiretiger、mongorocks

4、启动MongoDB

    /opt/mongodb/bin/mongod -f /opt/mongodb/mongodb.conf

    /opt/mongodb/bin/mongod -f /opt/mongodb/mongodb.conf --shutdown #关闭MongoDB

5、通过命令行进入MongoDB

    /opt/mongodb/bin/mongo --port 27017

MongoDB权限管理

mongodb安装好后第一次进入是不需要密码的,也没有任何用户。在安装MongoDB之后,先关闭auth认证,启动服务端。创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。

添加管理用户

    use admin

    db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})

    db.auth("admin", "123456") #验证是否成功,返回1则代表成功

给指定的库添加用户认证

    use 72byte

    db.createUser({user: "72byte", pwd: "123456", roles: [{ role: "dbOwner", db: "72byte" }]})

    db.auth("72byte", "123456")

mongodb命令行基本操作

    show dbs 显示所有数据库

    show tables | show collections 显示所有集合

    db 查看当前所在库

    use db_name 创建或使用某个库

    db.dropDatabase() 删除当前所在库

    db.collection_name.find() 查所有满足条件数据

    db.collection_name.findOne() 查满足条件的一条数据

    db.collection_name.count() 统计集合下面有多少数量的数据

    db.collection_name.drop() 删除集合

    db.stats() 查看当前数据库状态

    db.version() 查看当前数据库版本

查找指定条件callno的值小于5

    db.terminal_data_2019_08.find({"callno":{$lt:5}})

更新执行条件callno的值小于5的所有匹配条目,使所有callno的值加5

    db.terminal_data_2019_08.update({"callno":{$lt:5}},{$inc:{'callno':5}},{multi:true})

mongodb数据备份及恢复

数据备份

    ./mongodump -h 192.168.0.199:27017 -u 72byte -p 123456 -d ceshi -o /home/mongodb/backup/

    -d 要备份的库名

    -o 备份到的位置(本次备份的库命为ceshi,则在指定位置下生成名称为ceshi的目录,目录内为备份文件)

    ./mongorestore -h 192.168.0.199:27017 -u 72byte -p 123456 -d ceshi /home/mongodb/backup/ceshi/

    -d 要恢复的库名

    后跟备份文件目录位置

创建MongoDB副本集

Mongodb一共有三种集群搭建的方式:

Replica Set(副本集)

Sharding(分片)

Master-Slaver(主从) #目前已不推荐使用了!!!

副本集:副本集其实一种互为主从的关系,可理解为主主。将数据复制,多份保存,不同服务器保存同一份数据,在出现故障时自动切换。

分片:指为处理大量数据,将数据分开存储,不同服务器保存不同的数据,它们的数据总和即为整个数据集,追求的是高性能。

本次搭建MongoDB副本集实验环境:

192.168.0.172    master-node(主节点)

192.168.0.187    slave-node1(从节点)

192.168.0.199    slave-node2(从节点)

MongoDB 安装目录:/opt/mongodb

MongoDB 数据库目录:/opt/mongodb/db

MongoDB 日志目录:/opt/mongodb/log/mongodb.log

MongoDB 配置文件:/opt/mongodb/mongodb.conf

MongoDB的在三台上安装,安装过程见上文

编写配置文件(三台操作)

    port=27017

    bind_ip=192.168.0.172 #三台分别写自己的ip

    dbpath=/opt/mongodb/db

    logpath=/opt/mongodb/log/mongodb.log

    logappend=true

    fork=true

    maxConns=1000

    #auth=true

    journal=true

    storageEngine=wiredTiger

    directoryperdb=true

    shardsvr=true

    replSet=mymongodb #副本集的名字

启动服务

连接master-node

    mongo 192.168.0.172:27017

    rs.initiate() #初始化副本集

    rs.conf() #设置本机为主节点PRIMARY,执行完前缀已经改成"mymongodb:PRIMARY"

    rs.add("192.168.0.187:27017") #添加副本集从节点

    rs.add("192.168.0.199:27017")

连接两台从节点,两台操作一样

    db.getMongo().setSlaveOk() #设置从节点为只读.注意从节点的前缀现在是SECONDARY

你可能感兴趣的:(MongoDB安装及配置)