MongoDB部署

本文详细介绍了MongoDB的部署过程,包括连接MongoDB、安装配置、基本命令的使用,以及备份与恢复、副本集的创建与管理。通过实例展示了如何启动和关闭MongoDB服务,以及数据的导入导出操作。此外,还讨论了MongoDB的副本集配置,包括创建、删除和初始化副本集的方法。
摘要由CSDN通过智能技术生成

MongoDB 关系数据库与非关系数据库之间的产品

                                                      MongoDB 关系数据库与非关系数据库之间的产品

MongoDB 硬盘存储数据
Mongodb里面库db文件夹 表叫做集合collection 行叫 document

mongo 连接服务命令
mongod 启动服务命令
mongoexport导出
mongoimport 导入

/home/mongodb/home/bin/mongod -f /home/mongodb/home/mongodb.conf //启动mongodb服务
/home/mongodb/home/bin/mongod -f /home/mongodb/home/mongodb.conf --shutdown //关闭mongodb服务
cp -r /home/mongodb/home/bin/* /usr/local/sbin



连接mongodb

mongo --host 10.10.100.211 -port 27017 -u 用户 -p 密码 //连接mongodb
mongo 172.25.91.61:27017/gamedb -ubaoxue -pBaoxue.123

use 库名 创建数据库
db.库名.insert({“name”:“菜鸟教程”})



安装MongoDB

wget  https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz  
tar -xf mongodb-linux-x86_64-rhel70-4.2.1.tgz  
cd mongodb-linux-x86_64-rhel70-4.2.1  
ls    //这里面有一个bin的目录。里面是mongodb的脚本
mkdir  /home/mongodb 
cp -r ./bin    /home/mongodb 
cd /home/mongodb 
mkdir -p  home  logs   data 

#修改配置文件
vim ./home/mongodb.conf

logpath=/home/mongodb/log/mongodb.log      //日志的路径
logappend=true                                    //追加的方式记录日志信息
dbpath=/usr/local/mongodb/data/db      //数据库目录
fork=true                                    //守护进程方式运行
bind_ip=10.10.100.211             //绑定IP  和 端口
port=27017     
auth=true     //登录验证,创建用户后使用


基本命令

show dbs //查看已有库
use 库名 //切换库
db //查看当前库
show collections 或 show tables //查看库下的已有集合
db.dropDatabases() // 删除当前库

db.t1.save({name:“bob”,age:21,school:“China”}) //插入数据 没有表会自动创建表
db.t1.find()
查看、统计、添加、删除文档 类似于MySQL 但 json格式
db.集合名.find() //显示所有行 (默认输出20行)
db.集合名.count() //显示所有文档个数
db.集合名.insert({“name”:“jim”})
db.集合名.find({条件},{定义显示字符}) //定义显示字符也可以不加
db.集合名.findOne() //返回一条文档
db.集合名.remove({}) //删除所有文档
db.集合名.remove({条件}) //删除匹配所有文档
db.集合名.drop() //删除集合 如果没有这个集合会报false假
db.集合名.sava(“”,“”) //创建集合,不存在时自动创建 或者insert()也可以
db.user.update({条件},{$set:{修改的字段}}) //默认只更新与匹配的第一行
KaTeX parse error: Expected '}', got 'EOF' at end of input: …名.update({条件},{inc:{字段名:数字}})
db.user.update({bane:“bin”},{$inc:{uid:2}})
KaTeX parse error: Expected '}', got 'EOF' at end of input: …名.update({条件},{push:{数组:“值”}})
KaTeX parse error: Expected '}', got 'EOF' at end of input: …名.update({条件},{addToSet:{数组名:“值”}})
db.t1.sava({姓名:“王五”,存款:“null”}) //空值类型
({x:[“a”,“b”,“c”]}) //数据列表或数据集可以表示为数组
插入数据可以使用以下,但一次只能插入一条数据
db.t2.sava({_id:3,age:19})
或 db.t2.insert({_id:3,age:19}) insert插入如果存在则修改数据

一次插入多条数据可以使用
db.集合名.insertMany([
{name:“bob”,school:“China”},
{name:“AI”,school:“China”},
{name:“GUG”,school:“China”}
])

显示第一行 db.集合名.findOne()
db.user.find({_id:0,name:1,shell:1}) //0表示不显示 1表示显示
db.user.find({_id:0,name:1,shell:1}).limit(3) //只显示显示name和shell且只显示前3行
db.user.find({shell:“/sbin/nologin”},{_id:0,uid:1,ame:1}).sort({uid:-1}).limit(1)
db.user.find({shell:“/sbin/nologin”},{_id:0,uid:1,ame:1}).sort({uid:-1}).count //统计行数
db.user.find({_id:0,name:1,shell:1}).skip(2) //跳过前几行



备份 与 恢复

                                                                   备份 

mongoexport -h 10.14.2.210 --port 27017 -u test -plzkj -d Game -c gameRecord -o /root/gameRecord.json //备份单个表
mongodump -h 127.0.0.1 --port 27017 -u test -plzkj123 -d ChannelGame -o /home/ //备份整个库

                                                                   恢复

mongorestore -h 172.25.90.11 --port 27017 -u test -p 123456 -d Game --drop /opt/mongodb/data/Game // 恢复整个库
mongorestore -h 172.25.90.11 --port 27017 -u test -p 123456 -d ChannelGame --drop /opt/mongodb/data/ChannelGame

导出语法格式 1
/home/mongodb/bin/mongoexport --host 10.10.100.211 --port 27017 -d 库名 -c 集合名 --type=json > 目录名/文件名
/home/mongodb/bin/mongoexport --host 10.10.100.211 --port 27017 -d db1 -c t1 --type=json >/mdb/t1.json

导入语法格式 (可以导入到其他库,没有库会自动创建库)
/home/mongodb/bin/mongoimport --host 10.10.100.211 --port 27017 -d db1 -c t2 --type=json /mdb/t1.json

备份数据库所有库当前目录下的dump目录下
/home/mongodb/bin/mongodump --host 10.10.100.211 --port 27017
备份时指定备份的库和备份目录
mongodump --host 10.10.100.211 --port 27017 -d 数据库名字 -c 集合名 -o 目录

查看bson文件内容(备份的文件以bson格式存在)
bsondump ./D //查看bson文件

/home/mongodb/bin/mongorestore --host 10.10.100.211 --port 27017 -d db3 -c user /mbak/db3/user.bson //(还原库)



副本集

搭建副本集

  1. 三台以上机器安装mongodb
    // 配置文件(都设置成为复制rs1副本集,rs1名字可以随便起,但三个都要一样)
    vim /home/mongodb/home/mongodb.conf
logpath=/home/mongodb/log/mongodb.log      //日志的路径
logappend=true                                    //追加的方式记录日志信息
dbpath=/usr/local/mongodb/data/db      //数据库目录
fork=true                                    //守护进程方式运行
bind_ip=10.10.100.211             //绑定IP  和 端口   每台机器不同
port=27017                              端口可以设置不同端口
replSet=rs1                        //设置为副本集名称

配置节点信息

在任意一台主机连接mongodb服务,编写json格式 执行如下操作

mongo --host 10.10.100.211 --port 27017 //连接上去
config={
_id:“rs1”,
members:[
{_id:0,host:“ip地址:端口”}, //id为0为最先默认为主库
{_id:1,host:“ip地址:端口”},
{_id:2,host:“ip地址:端口”}
]
}

例如:
config={
_id:“bx”,
members:[
{_id:0,host:“172.25.91.76:27017”},
{_id:1,host:“172.25.91.77:27017”},
{_id:2,host:“172.25.91.78:27017”}
]
}

删除副本集

rs.remove(“192.168.17.129:27021”)
rs.remove (“10.10.100.216:27018”) //在连接到数据库后操作这个可以删除节点

初始化副本集配置

rs.initiate(config) //config是自己配置时的名称
rs.status() //查看状态信息
rs.isMaster() //查看是否是master库
rs.conf() //显示副本集配置对象:

添加完后可以打rs.status() //查看副本集状态

验证副本集配置
同步数据验证,允许从库查看数据
-> db.getMongo().setSlaveOk()
自动切换主库验证
->rs.isMaster()

db.createUser(
{
user: “root”,
pwd: “Baoxue.123”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)



配置文件参考

#数据目录
#auth=true
dbpath=/home/mongodb/data

#日志目录
logpath=/home/mongodb/logs/mongodb.log
pidfilepath=/home/mongodb/logs/master.pid

#directoryperdb=true
#日志输出方式
logappend=true

#副本集名称
replSet=baidu

#本机IP
bind_ip=0.0.0.0

#端口号
port=27017

#以后台方式运行
fork=true

#不预先分配内存
noprealloc=true

#操作文件最大值,单位 mb,默认硬盘百分之 5
oplogSize=10000

##副本集认证key
auth=true
keyFile=/home/mongodb/etc/keyFile.key
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值