美文网首页
mogondb搭建

mogondb搭建

作者: 就是这么任性_ac9c | 来源:发表于2019-05-06 10:04 被阅读0次

    mongodb

    1

    )装包

    [root@host50 ~]# tar -xzf mongodb-linux-x86_64-rhel70-3.6.3.tgz

    [root@host50 bin]# mkdir /usr/local/mongodb

    [root@host50 bin]# cd ..

    [root@host50 mongodb-linux-x86_64-rhel70-3.6.3]# mv bin//usr/local/mongodb/

    [root@host50 mongodb-linux-x86_64-rhel70-3.6.3]# cd /usr/local/mongodb/

    [root@host50 mongodb]# ls

    bin

    [root@host50 mongodb]# mkdir etc

    [root@host50 mongodb]# mkdir log

    [root@host50 mongodb]# mkdir -p data/db

    数据库目录(名称必须是这个)

    2

    )创建并修改配置文件

    [root@host50 bin]# ./mongod --help

    Options:

    General options:

      -h [ --help ]                         show this usageinformation

      --version                             show versioninformation

      -f [ --config ] arg                   configuration filespecifying

                                           additional options

    手动创建服务主配置文件

    [root@bogon ~]# vim mongodb.conf

    logpath=/usr/local/mongodb/log/mongodb.log

    logappend=true #

    追加的方式记录日志信息

    dbpath=/usr/local/mongodb/data/db #

    数据库目录

    fork=true #

    守护进程方式运行

    [root@host50 mongodb]# vim etc/mongodb.conf

    [root@host50 mongodb]# cat etc/mongodb.conf

    dbpath=/usr/local/mongodb/data/db

    fork=true

    logpath=/usr/local/mongodb/log/mongodb.log

    logappend=ture

    使用命令不用绝对路径

    [root@host50 mongodb]# vim /etc/profile

    [root@host50 mongodb]# source /etc/profile

    [root@host50 mongodb]# tail -1 /etc/profile

    export PATH=/usr/local/mongodb/bin/:/usr/local/mysql/bin:$PATH

    [root@host50 mongodb]# echo $PATH

    /usr/local/mongodb/bin/:/usr/local/mysql/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    启动服务:

    [root@host50 etc]# mongod -f /usr/local/mongodb/etc/mongodb.conf

    about to fork child process, waiting until server is ready forconnections.

    forked process: 2652

    child process started successfully, parent exiting

    [root@host50 log]# ss -nuplt | grep :27017

    tcp    LISTEN     0     128    127.0.0.1:27017                 *:*                  users:(("mongod",pid=2652,fd=11))

    [root@host50 log]# ps -C mongod

      PID TTY          TIME CMD

     2652 ?        00:00:00 mongod

    cd .

    连接:

    [root@host50 mongodb]# mongo

    MongoDB shell version v3.6.3

    connecting to: mongodb://127.0.0.1:27017

    MongoDB server version: 3.6.3

    Welcome to the MongoDB shell.

    For interactive help, type "help".

    For more comprehensive documentation, see

        http://docs.mongodb.org/

    Questions? Try the support group

    .

    .

    .

    2018-07-07T10:51:26.962+0800 I CONTROL [initandlisten]

    > show dbs  ###

    看有多少库

    admin   0.000GB

    config  0.000GB

    local   0.000GB

    > db     ####

    查看当前所在库

    test

    修改登陆ip和port

    [root@host50 mongodb]# vim etc/mongodb.conf

    [root@host50 mongodb]# tail -2 etc/mongodb.conf

    bind_ip=192.168.4.50

    port=27050

    [root@host50 mongodb]# mongod -f etc/mongodb.conf

    about to fork child process, waiting until server is ready forconnections.

    forked process: 3019

    child process started successfully, parent exiting

    [root@host50 mongodb]# ss -nuplt | grep :27050

    tcp    LISTEN     0     128    192.168.4.50:27050                 *:*                  users:(("mongod",pid=3019,fd=11))

    [root@host50 mongodb]# mongo --host 192.168.4.50 --port 27050

    MongoDB shell version v3.6.3

    connecting to: mongodb://192.168.4.50:27050/

    exit

    停服务:

    [root@host50 etc]# mongod --shutdown -f mongodb.conf

    killing process with pid: 1830

    库管理命令: 查看 创建 切换 删除

    – show dbs

    查看已有的库

    – db

    显示当前所在的库

    – use

    库名 切换库,若库不存在的话 自动延时创建库

    – show collections

    或 show tables 查看库下已有的集合

    – db.dropDatabase()

    删除当前所在的库

    数据库名可以是满足以下条件的任意 UTF-8 字符串。

    不能是空字符串( "") 。

    不得含有 ' ' (空格 ) 、 . 、 $ 、 / 、 \ 和 \0 ( 空字符)

    应全部小写。

    最多 64 字节。

    集合管理命令:查看 创建 删除

    – show collections

    或 show tables # 查看集合

    #

    删除集合

    – db.

    集合名.drop()

    – db.

    集合名.save({'',''})

    在时,创建并添加文档

    > db.user.save({'name':'bob','age':'21'})

    WriteResult({ "nInserted" : 1 })

    #

    创建集合,集合不存

    > use studb  

    switched to db studb

    > db

    studb     ######

    创建集合

    >db.c1.save({"name":"boa","age":18,"class":"nsd1803"})

    WriteResult({ "nInserted" : 1 })

    > db.c1.save({"name":"xielingyun","class":"nsd1803"})

    WriteResult({ "nInserted" : 1 })

    > db.c1.find() ########

    查看集合

    { "_id" : ObjectId("5b4039e85aba90867680d773"),"name" : "boa", "age" : 18, "class" :"nsd1803" }

    { "_id" : ObjectId("5b4039fc5aba90867680d774"),"name" : "xielingyun", "class" :"nsd1803" }

    文档管理命令: 查看 统计 添加 删除

    – db.

    集合名.find()

    – db.

    集合名.count()

    – db.

    集合名.insert({“name”:”jim”})

    – db.

    集合名 .find({ 条件})

    – db.

    集合名 .findOne() # 返回一条文档

    – db.

    集合名 .remove({}) # 删除所有文档

    – db.

    集合名 .remove({ 条件 }) # 删除与条件匹配的所有文档

    字符 string/ 布尔 bool/ 空null

    – UTF-8

    字符串都可以表示为字符串类型的数据

    – {name:”

    张三” } 或{school:“tarena”}

    布尔bool

    布尔类型有两个值 true 和false ,{x:true}

    空null

    用于表示空值或者不存在的字段, {x:null}

    数值 / 数组array

    数值

    – shell

    默认使用 64 为浮点型数值。 {x :

    3.14} 或{x : 3}

    NumberInt ( 4

    字节整数) {x:NumberInt(3)}

    – NumberLong ( 8

    字节整数) {x:NumberLong(3)}

    > db.c1.save({name:"bob",x:NumberInt(3)})

    WriteResult({ "nInserted" : 1 })

    > db.c1.save({name:"jack",x:NumberInt(3.99)})

    WriteResult({ "nInserted" : 1 })

    > db.c1.find()

    { "_id" : ObjectId("5b4039e85aba90867680d773"),"name" : "boa", "age" : 18, "class" :"nsd1803" }

    { "_id" : ObjectId("5b4039fc5aba90867680d774"),"name" : "xielingyun", "class" :"nsd1803" }

    { "_id" : ObjectId("5b405efb5aba90867680d776"),"name" : "bob", "x" : 3 }

    { "_id" : ObjectId("5b405f095aba90867680d777"),"name" : "jack", "x" : 3 }

    数组array

    数据列表或数据集可以表示为数组

    – {x : [“a“ ,“ b”,”c”]}

    > db.c1.save({name:'yaya',bboy:['bj','ls','zs']})

    WriteResult({ "nInserted" : 1 })

    > db.c1.find({name:'yaya'})

    { "_id" : ObjectId("5b405f885aba90867680d778"),"name" : "yaya", "bboy" : [ "bj","ls", "zs" ] }

    代码 / 日期 / 对象代码

    查询和文档中可以包括任何 JavaScript 代码

    – {x: function( ){/*

    代码*/}}

    > db.c1.save({

    ... Iname:"php",

    ... codeformat:function(){/* */}

    ... })

    WriteResult({ "nInserted" : 1 })

    >

    日期

    日期被存储为自新纪元依赖经过的毫秒数,不存储时区

    – {x:new Date( )}

    > db.c1.save({name:'xielingyun',brithday:new Date() })

    WriteResult({ "nInserted" : 1 })

    对象

    对象 id 是一个 12 字节的字符串,是文档的唯一标识

    – {x: ObjectId() }

    > db.c1.save({name:"alice",stuid:ObjectId()})

    WriteResult({ "nInserted" : 1 })

    内嵌 / 正则表达式

    文档可以嵌套其他文档,被嵌套的文档作为值来处理

    > db.c1.save({

    ... ywzd:{p:'dmy',jg:69,v:2},ngsfc:{p:'bird',jg:89,v:3}})

    WriteResult({ "nInserted" : 1 })

    正则表达式

    查询时,使用正则表达式作为限定条件

    – {x:/

    正则表达式/}

    > db.c1.save({name:"hanmeimei",match:/^a/ })

    WriteResult({ "nInserted" : 1 })

    数据导出语法格式1

    – #mongoexport [--host IP

    地址 --port 端口]

    -d

    库名 -c 集合名 -f 字段名 1, 字段名2

    --type=csv  >

    目录名 / 文件名.csv

    语法格式2

    – #mongoexport --host IP

    地址 --port 端口

    -

    库名 -c 集合名 -q ‘{ 条件 }’ -f 字段名 1 ,字段名2

    --type=csv >

    目录名 / 文件名.csv

    注意:导出为 csv 格式必须使用 -f 指定字段名列表!!!

    [root@host50 ~]# mongoexport --host 192.168.4.50 --port 27050 -d studb -c c1 -f_id,name --type=csv > /root/monfodbdir/c1.csv

    2018-07-07T16:33:45.906+0800    connectedto: 192.168.4.50:27050

    2018-07-07T16:33:45.906+0800    exported10 records

    语法格式3

    #mongoexport [ --host IP

    地址 --port 端口]

    -d

    库名 -c 集合名 [ -q ‘{ 条件 }’ –f 字段列表]

    --type=json  >

    目录名 / 文件名.json

    [root@host50 mongodb]# mongoexport --host 192.168.4.50 --port 27050 -d studb -cc1 --type=json > /root/mongodbdir/c1.txt

    后面不指定路径名就输出到当前屏幕

    数据导入

    语法格式1

    – #mongoimport –host IP

    地址 – port 端口

    -d

    库名 – c 集合名

    --type=json

    目录名 / 文件名.json

    [root@host51 ~]# mongoimport --host 192.168.4.51 --port 27051 -d bbsdb -c t1--type=json /root/monfodbdir/c1.txt

    2018-07-07T16:23:43.757+0800    connectedto: 192.168.4.51:27051

    2018-07-07T16:23:43.891+0800    imported10 documents

    [root@host51 ~]#

    语法格式2

    – #mongoimport –host IP

    地址 – port 端口

    -d

    库名 – c 集合名

    --type=csv --headerline [--drop]

    目录名 / 文件名.c

    sv

    注意:导入数据时库和集合不存在时,会创建库和集合后导入数据反之以追加的方式导入数据到集合里,使用— drop 选项可以删除原有数据后导入新数据 --headerline 忽略标题

    [root@host51 monfodbdir]# mongoimport --host 192.168.4.51 --port 27051 -d bbsdb-c t2 -f _id,name --type=csv /root/monfodbdir/c1.csv

    2018-07-07T16:46:14.859+0800    connectedto: 192.168.4.51:27051

    2018-07-07T16:46:15.564+0800    imported11 documents

    [root@host51 monfodbdir]# mongoimport --host 192.168.4.51 --port 27051 -d bbsdb-c t1  --headerline --drop --type=csv/root/monfodbdir/c1.csv      ######t1

    本身有数据

    2018-07-07T17:00:41.899+0800    connectedto: 192.168.4.51:27051

    2018-07-07T17:00:41.900+0800    dropping:bbsdb.t1

    2018-07-07T17:00:42.278+0800    imported10 documents

    练习将/etc/passwd导入mongodb

    > db.c3.save({

    ... name:'yaya',

    ... password:'x',

    ... uid:88888

    ... gid:999999,

    ... comment:'teacher',

    ... homedir:'/home/yaya',

    ... shell:'/bin/bash'})

    WriteResult({ "nInserted" : 1 })

    >

    [root@host50 ~]# mongoexport --host 192.168.4.50 --port 27050 -d test -c c3 -fname,password,uid,gid,comment,homedir,shell --type=csv >/root/monfodbdir/c4.csv

    2018-07-07T17:34:21.899+0800    connectedto: 192.168.4.50:27050

    2018-07-07T17:34:21.900+0800    exported 1record

    制作csv格式文件,mongodb只能读scv,json格式

    [root@host50 monfodbdir]# cp /etc/passwd ./

    [root@host50 monfodbdir]# ls

    c1.csv  c1.txt  c3.csv c4.csv  passwd

    [root@host50 monfodbdir]# sed -i '$r passwd' c4.csv

    [root@host50 monfodbdir]# vim c4.csv

    [root@host50 monfodbdir]# sed -i 's/:/,/g' c4.csv

    [root@host50 monfodbdir]# vim c4.csv

    导入:

    [root@host50 monfodbdir]# mongoimport --host 192.168.4.50 --port 27050 -d test -c c3 --headerline --drop--type=csv /root/monfodbdir/c4.csv

    2018-07-07T17:44:19.202+0800    connectedto: 192.168.4.50:27050

    2018-07-07T17:44:19.203+0800    dropping:test.c3

    2018-07-07T17:44:19.444+0800    imported43 documents

    数据备份

    备份数据所有库到当前目录下的 dump 目录下

    # mongodump [ --host ip

    地址 --port 端口]

    [root@host50 mongodb]# mongodump --host 192.168.4.50 --port 27050

    2018-07-07T17:52:49.100+0800    writingadmin.system.version to

    2018-07-07T17:52:49.100+0800    donedumping admin.system.version (1 document)

    2018-07-07T17:52:49.100+0800    writingtest.c3 to

    2018-07-07T17:52:49.100+0800    writingstudb.c1 to

    2018-07-07T17:52:49.101+0800    donedumping test.c3 (43 documents)

    2018-07-07T17:52:49.101+0800    donedumping studb.c1 (10 documents)

    [root@host50 mongodb]# ls

    bin  data dump  etc  log

    备份时指定备份的库和备份目录

    # mongodump [ --host ip

    地址 --port 端口 ] -d 数据库名

    -c

    集合名 -o 目录

    [root@host50 mongodb]# mkdir /backmongo

    [root@host50 mongodb]# mongodump --host 192.168.4.50 --port 27050 -d test -c c3-o /backmongo

    [root@host50 backmongo]# ls

    test

    [root@host50 backmongo]# cd test/

    [root@host50 test]# ls

    c3.bson  c3.metadata.json

    [root@host50 test]#

    查看 bson 文件内容

    #bsondump ./dump/bbs/t1.bson

    数据恢复

    语法格式

    – mongorestore --host IP

    地址 --port 端口 -d 数据库名 [ -c 集合名 ] 备份目录名

    [root@host50 test]# mongorestore --host 192.168.4.50 --port 27050 -d test -c c4/bakmongo/test/c3.bson

    2018-07-07T18:03:40.018+0800    Failed:mongorestore target '/bakmongo/test/c3.bson' invalid: stat/bakmongo/test/c3.bson: no such file or directory

    [root@host50 test]# mongorestore --host 192.168.4.50 --port 27050 -d test -c c4/backmongo/test/c3.bson

    2018-07-07T18:03:49.609+0800    checkingfor collection data in /backmongo/test/c3.bson

    2018-07-07T18:03:49.610+0800    readingmetadata for test.c4 from /backmongo/test/c3.metadata.json

    2018-07-07T18:03:49.830+0800    restoringtest.c4 from /backmongo/test/c3.bson

    2018-07-07T18:03:49.893+0800    no indexesto restore

    2018-07-07T18:03:49.893+0800    finishedrestoring test.c4 (43 documents)

    2018-07-07T18:03:49.893+0800    done

    ngqH��@�|

    相关文章

      网友评论

          本文标题:mogondb搭建

          本文链接:https://www.haomeiwen.com/subject/wgnloqtx.html