最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【记录】将本地合并后的MongoDB的main数据导入在线生产服务器中

MongoDB crifan 2053浏览 0评论

之前已经:

【记录】MongoDB中本地写代码实现数据合并和迁移

接着去要把本地main的数据去导入到在线服务器中。

大概步骤是:

  • 在线服务器中创建MongoDB账号

  • 本地导出storybook.main

  • 再去上传导出的文件

  • 再去导入数据到在线MongoDB

所以先去到在线服务器中给MongoDB数据库创建新用户

先去参考自己的:

主流文档型数据库:MongoDB

先去登录:

[root@xx-general-01 ~]# mongo –host localhost –port PORT -u root -p PWD –authenticationDatabase admin

MongoDB shell version: 3.2.19

connecting to: localhost:32018/test

Server has startup warnings:

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten]

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten] **        We suggest setting it to ‘never’

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten]

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always’.

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten] **        We suggest setting it to ‘never’

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten]

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 4096 processes, 65535 files. Number of processes should be at least 32767.5 : 0.5 times number of files.

2018-08-28T11:40:44.281+0800 I CONTROL  [initandlisten]

> use admin

switched to db admin

> show users

{

        "_id" : "admin.root",

        "user" : "root",

        "db" : "admin",

        "roles" : [

                {

                        "role" : "root",

                        "db" : "admin"

                }

        ]

}

然后去创建新用户,结果出错:

【已解决】MongoDB的shell中创建用户出错:Error couldn’t add user No role named root@xxx

导入之前,先用MongoDB Compass去连接生产服务器,看看上面的数据:

看看能否正常连接。

可以连接的

是我们希望的,空的一个db和collection。

所以去:

【已解决】MongoDB中用导出本地数据再用导入到在线数据库

【总结】

此处要把MongoDB中合并后的某db的两个collection去备份导出,再去导入到在线服务器中的步骤是:

1.创建在线环境中的新的db的账号

(1)登录并进入到admin数据库

mongo –host localhost –port PORT -u root -p PWD –authenticationDatabase admin

use admin

(2)在admin中创建新db的用户

db.createUser({

  user: "storybook",

  pwd: "PPWWDD",

  roles: [ { role: "dbOwner", db: "storybook" } ]

})

其中:dbOwner这个role角色,表示是数据库storybook的账号拥有者 -》可以增删改查以及删除等有所有的权限

2.本地备份导出

在某个文件夹中:

mongodump -d db_name -o .

即可导出:

  • db_name

    • collection1.bson

    • collection1.metadata.json

    • collection2.bson

    • collection2.metadata.json

比如:

  • storybook

    • scholastic.bson

    • scholastic.metadata.json

    • main.bson

    • main.metadata.json

3.恢复导入到在线服务器

mongorestore -h HOST –port PORT -u yourUserName -p yourPwd –authenticationDatabase yourAuthDb -d db_name ./db_name

比如:

mongorestore -h HOST –port PORT -u storybook -p PPWWDD –authenticationDatabase storybook -d storybook ./storybook

即可导入到在线的MongoDB数据库中了。

转载请注明:在路上 » 【记录】将本地合并后的MongoDB的main数据导入在线生产服务器中

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.187 seconds, using 22.12MB memory