mongodb的部署及常用操作

一、mongodb
在这里插入图片描述
1、部署mongodb服务
(1)装包

[root@host50 ~]# tar -xf mongodb-linux-x86_64-rhel70-3.6.3.tgz
[root@host50 ~]# cd mongodb-linux-x86_64-rhel70-3.6.3/
[root@host50 mongodb-linux-x86_64-rhel70-3.6.3]# mkdir /usr/local/mongodb
[root@host50 mongodb-linux-x86_64-rhel70-3.6.3]# cp -r bin/ /usr/local/mongodb
[root@host50 mongodb]# mkdir -p data/db
[root@host50 mongodb]# mkdir etc
[root@host50 mongodb]# mkdir log
[root@host50 mongodb]# ls
bin  data  etc  log

(2)手动创建主配置文件

[root@host50 mongodb]# ./bin/mongod --help		//创建mongodb主配置文件的帮助命令
[root@host50 mongodb]# vim /usr/local/mongodb/etc/mongodb.conf
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true		//以追加的方式记录日志
dbpath=/usr/local/mongodb/data/db		//数据库目录
fork=true		//以守护进程方式运行

(3)启动服务

[root@host50 mongodb]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf		//启动服务
about to fork child process, waiting until server is ready for connections.
forked process: 14896
child process started successfully, parent exiting
[root@host50 mongodb]# netstat -ntulp |grep 27017		//在未修改服务ip地址和监听端口情况下,默认监听本地lo口的27017端口
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      14896/mongod
[root@host50 mongodb]# ls log/
mongodb.log
[root@host50 mongodb]# ls data/db/
collection-0--5402820611345276053.wt  journal          WiredTiger
collection-2--5402820611345276053.wt  _mdb_catalog.wt  WiredTigerLAS.wt
diagnostic.data                       mongod.lock      WiredTiger.lock
index-1--5402820611345276053.wt       sizeStorer.wt    WiredTiger.turtle
index-3--5402820611345276053.wt       storage.bson     WiredTiger.wt

++++++++++++++++++++++++++++++++
关闭服务命令

[root@host50 mongodb]# /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf --shutdown
killing process with pid: 14896

定义服务开启和关闭别名

[root@host50 mongodb]# vim /root/.bashrc
alias mstop="/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf --shutdown"
alias mstart="/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/etc/mongodb.conf"

+++++++++++++++++++++++++++++++++
(4)连接mongodb服务

[root@host50 mongodb]# /usr/local/mongodb/bin/mongo
> show dbs		//显示已有库
admin   0.000GB
config  0.000GB
local   0.000GB
> use local		//切换库
switched to db local
> db		//显示当前库
local
> show tables		//显示库中的表
startup_log
> exit
bye

(5)修改服务ip和监听端口号

[root@host50 mongodb]# vim /usr/local/mongodb/etc/mongodb.conf
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
dbpath=/usr/local/mongodb/data/db
fork=true
bind_ip=192.168.8.50
port=27050		//端口号以主机ip结尾,以示区别
[root@host50 mongodb]# mstart
about to fork child process, waiting until server is ready for connections.
forked process: 15142
child process started successfully, parent exiting        
[root@host50 mongodb]# netstat -ntulp |grep mongod
tcp        0      0 192.168.8.50:27050      0.0.0.0:*               LISTEN      15142/mongod
[root@host50 mongodb]# /usr/local/mongodb/bin/mongo -host 192.168.8.50 -port 27050		//修改服务ip和监听端口后连接服务命令

2、mongodb的基本使用
(1)数据库管理
在这里插入图片描述
在这里插入图片描述

(2)集合管理
在这里插入图片描述
在这里插入图片描述
(3)文档基本管理
在这里插入图片描述
3、mongodb数据类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、数据导出
在这里插入图片描述
在这里插入图片描述

  • 示例
[root@host50 ~]# /usr/local/mongodb/bin/mongo -host 192.168.8.50 -port 27050
> show databases
admin   0.000GB
config  0.000GB
local   0.000GB
user    0.000GB
> use user
switched to db user
> db.user.find()
{ "_id" : ObjectId("5cceb20ac3d1a57561a2d3df"), "name" : "张大千", "age" : 24, "sex" : "boy" }
{ "_id" : ObjectId("5cceb259c3d1a57561a2d3e0"), "name" : "张大强", "card" : true, "girl" : false }
{ "_id" : ObjectId("5cceb2abc3d1a57561a2d3e1"), "name" : "张大强", "money" : 8500.55, "doller" : null }
{ "_id" : ObjectId("5cceb2d3c3d1a57561a2d3e2"), "name" : "张大强", "money" : 8500, "doller" : null }
{ "_id" : ObjectId("5cceb2f5c3d1a57561a2d3e3"), "name" : "张大强", "yingbang" : NumberLong(8500), "doller" : null }
{ "_id" : ObjectId("5cceb8c8c3d1a57561a2d3e4"), "name" : "tom", "aihao" : [ "music", "ball", "food" ] }
{ "_id" : ObjectId("5ccebca8c3d1a57561a2d3e5"), "name" : "lili", "birthday" : ISODate("2019-05-05T10:36:24.491Z") }
{ "_id" : ObjectId("5ccebdc7c3d1a57561a2d3e6"), "name" : "zhangsan", "script" : { "code" : "function (){/*<?php echo \"hello world\"?> */}" } }
{ "_id" : ObjectId("5ccebf02c3d1a57561a2d3e8"), "name" : "lili", "tel" : "18859632546", "id" : ObjectId("5ccebf02c3d1a57561a2d3e7") }
{ "_id" : ObjectId("5ccebfd4c3d1a57561a2d3e9"), "name" : "lili", "gn" : "kh", "bbs" : /^$/ }
> exit
bye
[root@host50 mongodb]# /usr/local/mongodb/bin/mongoexport --host 192.168.8.50 --port 27050 -d user -c user -f name,age --type=csv > /tmp/user.csv		//导出csv格式数据(仅导出name和age字段值)
2019-05-05T07:56:54.197-0400	connected to: 192.168.8.50:27050
2019-05-05T07:56:54.197-0400	exported 10 records
[root@host50 mongodb]# cat /tmp/user.csv
name,age
张大千,24
张大强,
张大强,
张大强,
张大强,
tom,
lili,
zhangsan,
lili,
lili,

[root@host50 mongodb]# /usr/local/mongodb/bin/mongoexport --host 192.168.8.50 --port 27050 -d user -c user --type=json > /tmp/user2.json		//导出csv格式数据
2019-05-05T09:03:49.195-0400	connected to: 192.168.8.50:27050
2019-05-05T09:03:49.197-0400	exported 10 records
[root@host50 mongodb]# cat /tmp/user2.json
{"_id":{"$oid":"5cceb20ac3d1a57561a2d3df"},"name":"张大千","age":24.0,"sex":"boy"}
{"_id":{"$oid":"5cceb259c3d1a57561a2d3e0"},"name":"张大强","card":true,"girl":false}
{"_id":{"$oid":"5cceb2abc3d1a57561a2d3e1"},"name":"张大强","money":8500.55,"doller":null}
{"_id":{"$oid":"5cceb2d3c3d1a57561a2d3e2"},"name":"张大强","money":8500,"doller":null}
{"_id":{"$oid":"5cceb2f5c3d1a57561a2d3e3"},"name":"张大强","yingbang":{"$numberLong":"8500"},"doller":null}
{"_id":{"$oid":"5cceb8c8c3d1a57561a2d3e4"},"name":"tom","aihao":["music","ball","food"]}
{"_id":{"$oid":"5ccebca8c3d1a57561a2d3e5"},"name":"lili","birthday":{"$date":"2019-05-05T10:36:24.491Z"}}
{"_id":{"$oid":"5ccebdc7c3d1a57561a2d3e6"},"name":"zhangsan","script":{"$code":"function (){/*\u003c?php echo \"hello world\"?\u003e */}"}}
{"_id":{"$oid":"5ccebf02c3d1a57561a2d3e8"},"name":"lili","tel":"18859632546","id":{"$oid":"5ccebf02c3d1a57561a2d3e7"}}
{"_id":{"$oid":"5ccebfd4c3d1a57561a2d3e9"},"name":"lili","gn":"kh","bbs":{"$regex":"^$","$options":""}}

5、数据导入
在这里插入图片描述

  • 数据导入示例
[root@host51 ~]# /usr/local/mongodb/bin/mongo -host 192.168.8.51 -port 27051
...
> show databases
admin   0.000GB
config  0.000GB
local   0.000GB
> exit
bye
[root@host51 bin]# ./mongoimport --host 192.168.8.51 --port 27051 -d user -c user51 > --type=json /root/user2.json 		//导入json格式数据
2019-05-05T01:27:35.693-0400	connected to: 192.168.8.51:27051
2019-05-05T01:27:35.819-0400	imported 10 documents
[root@host51 bin]# /usr/local/mongodb/bin/mongo -host 192.168.8.51 -port 27051
...
> show databases
admin   0.000GB
config  0.000GB
local   0.000GB
user    0.000GB
> use user
switched to db user
> show tables
user51
> db.user51.find()
{ "_id" : ObjectId("5cceb20ac3d1a57561a2d3df"), "name" : "张大千", "age" : 24, "sex" : "boy" }
{ "_id" : ObjectId("5cceb259c3d1a57561a2d3e0"), "name" : "张大强", "card" : true, "girl" : false }
{ "_id" : ObjectId("5cceb2abc3d1a57561a2d3e1"), "name" : "张大强", "money" : 8500.55, "doller" : null }
{ "_id" : ObjectId("5cceb2d3c3d1a57561a2d3e2"), "name" : "张大强", "money" : 8500, "doller" : null }
{ "_id" : ObjectId("5cceb2f5c3d1a57561a2d3e3"), "name" : "张大强", "yingbang" : NumberLong(8500), "doller" : null }
{ "_id" : ObjectId("5cceb8c8c3d1a57561a2d3e4"), "name" : "tom", "aihao" : [ "music", "ball", "food" ] }
{ "_id" : ObjectId("5ccebca8c3d1a57561a2d3e5"), "name" : "lili", "birthday" : ISODate("2019-05-05T10:36:24.491Z") }
{ "_id" : ObjectId("5ccebdc7c3d1a57561a2d3e6"), "name" : "zhangsan", "script" : { "code" : "function (){/*<?php echo \"hello world\"?> */}" } }
{ "_id" : ObjectId("5ccebfd4c3d1a57561a2d3e9"), "name" : "lili", "gn" : "kh", "bbs" : /^$/ }
{ "_id" : ObjectId("5ccebf02c3d1a57561a2d3e8"), "name" : "lili", "tel" : "18859632546", "id" : ObjectId("5ccebf02c3d1a57561a2d3e7") }

[root@host51 bin]# ./mongoimport --host 192.168.8.51 --port 27051 -d user -c usera -f name,age  --type=csv /root/user.csv 		//导入csv格式文件
2019-05-05T02:59:28.355-0400	connected to: 192.168.8.51:27051
2019-05-05T02:59:28.358-0400	imported 11 documents
[root@host51 bin]# ./mongo -host 192.168.8.51 -port 2705
> use user
switched to db user
> db.usera.count()
11
> db.usera.find()
{ "_id" : ObjectId("5cce8a76d17a7255abade400"), "name" : "name", "age" : "age" }
{ "_id" : ObjectId("5cce8a76d17a7255abade401"), "name" : "张大千", "age" : 24 }
{ "_id" : ObjectId("5cce8a76d17a7255abade402"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade403"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade404"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade405"), "name" : "tom", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade406"), "name" : "lili", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade407"), "name" : "zhangsan", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade408"), "name" : "lili", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade409"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8a76d17a7255abade40a"), "name" : "lili", "age" : "" }
> exit
bye
[root@host51 bin]# ./mongoimport --host 192.168.8.51 --port 27051 -d user -c usera --headerline --drop --type=csv /root/user.csv 		//忽略标题,删除同名集合,导入csv格式文件
2019-05-05T03:04:50.542-0400	connected to: 192.168.8.51:27051
2019-05-05T03:04:50.543-0400	dropping: user.usera
2019-05-05T03:04:50.742-0400	imported 10 documents
[root@host51 bin]# ./mongo -host 192.168.8.51 -port 27051
...
> use user
switched to db user
> db.usera.count()
10
> db.usera.find()
{ "_id" : ObjectId("5cce8b12d17a7255abade420"), "name" : "张大千", "age" : 24 }
{ "_id" : ObjectId("5cce8b12d17a7255abade421"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade422"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade423"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade424"), "name" : "张大强", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade425"), "name" : "tom", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade426"), "name" : "lili", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade427"), "name" : "zhangsan", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade428"), "name" : "lili", "age" : "" }
{ "_id" : ObjectId("5cce8b12d17a7255abade429"), "name" : "lili", "age" : "" }
> exit
bye
  • 导入/etc/passwd的数据
[root@host50 ~]# cp /etc/passwd /root/
[root@host50 ~]# sed -i 's/:/,/g' passwd		//将passwd文件数据改为csv格式(字段值之间用“,”隔开)
[root@host50 ~]# sed -n 'p' passwd
name,passwd,uid,gid,comment,home,shell
root,x,0,0,root,/root,/bin/bash
bin,x,1,1,bin,/bin,/sbin/nologin
...
[root@host50 ~]# /usr/local/mongodb/bin/mongoimport --host 192.168.8.50 --port 27050 -d user -c userb --headerline --type=csv passwd 
2019-05-05T11:32:46.848-0400	connected to: 192.168.8.50:27050
2019-05-05T11:32:46.850-0400	imported 22 documents
[root@host50 ~]# /usr/local/mongodb/bin/mongo -host 192.168.8.50 -port 27050
...
> use user
switched to db user
> show tables
user
userb
> db.userb.count()
22
> db.userb.find()
{ "_id" : ObjectId("5ccf0305c638f7fde11ca32c"), "name" : "root", "passwd" : "x", "uid" : 0, "gid" : 0, "comment" : "root", "home" : "/root", "shell" : "/bin/bash" }
{ "_id" : ObjectId("5ccf0305c638f7fde11ca32d"), "name" : "bin", "passwd" : "x", "uid" : 1, "gid" : 1, "comment" : "bin", "home" : "/bin", "shell" : "/sbin/nologin" }
...

6、数据备份与恢复
在这里插入图片描述
在这里插入图片描述

[root@host50 ~]# /usr/local/mongodb/bin/mongodump --host 192.168.8.50 --port 27050		//备份到当前目录
[root@host50 ~]# ls dump/user/
userb.bson  userb.metadata.json  user.bson  user.metadata.json
[root@host50 ~]# /usr/local/mongodb/bin/bsondump dump/user/userb.bson		//查看备份数据
[root@host50 ~]# scp dump/user/userb.bson 192.168.8.51:/root		//将备份数据拷贝至51主机

[root@host51 ~]# /usr/local/mongodb/bin/mongorestore --host 192.168.8.51 --port 27051 -d userbak -c userbbak userb.bson		//将数据恢复到51主机
[root@host51 ~]# /usr/local/mongodb/bin/mongo --host 192.168.8.51 --port 27051
...
> use userbak
switched to db userbak
> show tables
userbbak
> db.userbbak.count()
22
> db.userbbak.find()
{ "_id" : ObjectId("5ccf0305c638f7fde11ca32c"), "name" : "root", "passwd" : "x", "uid" : 0, "gid" : 0, "comment" : "root", "home" : "/root", "shell" : "/bin/bash" }
{ "_id" : ObjectId("5ccf0305c638f7fde11ca340"), "name" : "apache", "passwd" : "x", "uid" : 48, "gid" : 48, "comment" : "Apache", "home" : "/usr/share/httpd", "shell" : "/sbin/nologin" }
...
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值