美文网首页
mongo 恢复阿里云 及导入导出

mongo 恢复阿里云 及导入导出

作者: QTong | 来源:发表于2018-12-27 10:50 被阅读0次

阿里云的文档地址 :(已经失效)
https://help.aliyun.com/document_detail/62408.html?spm=a2c4g.11186623.6.634.fwCNio
https://help.aliyun.com/document_detail/58329.html

阿里云要求mongo版本3.2以上 我在本地windows搞了一顿没有搞ok(关键是现在的都是ssl版本的mongo启动各种报错而且没有资料查), 遂找了台linux服务器记录如下

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.15.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.15.tgz -C /mongo/
tar -zxvf hins1_data_20180519130838.tar.gz -C /mongo/data/
cd /mongo
bin/mongo --config mongo.conf

mongo.conf内容(阿里云官网的内容 路径我改了下 )

systemLog:
    destination: file
    path: /path/to/mongo/mongod.log
    logAppend: true
security:
    authorization: enabled
storage:
    dbPath: /path/to/mongo/data
    directoryPerDB: true
net:
    http:
        enabled: false
    port: 27017
    unixDomainSocket:
        enabled: false
processManagement:
    fork: true
    pidFilePath: /path/to/mongo/mongod.pid

还原整个库

./mongodump -o data
./mongorestore --host 192.168.1.1 data

以上为全部内容记录

以下为平常用mongo导入导出的一些命令

#启动命令
cd /website/mongo/mongo/bin
./mongo --host 127.0.0.1:19891
./mongod --dbpath=/website/mongo/data/db --port=19891 --fork --logpath=/website/mongo/data/logs/mongo.log

#单个库
/website/mongo/mongo/bin/mongodump --port 19891 -d db1 -o db1
./mongorestore --host dds-2-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u root -p passwd dump/ 

#单个collection
./mongoexport -h dds-2-pub.mongodb.rds.aliyuncs.com:3717 --authenticationDatabase admin -u root -p passwd -d db1 -c collect1 -o db1c1
./mongoimport -h 127.0.0.1:19891 -d db1 -c collection1 --type json --file db1c1

#实际恢复例子
可以在第三台mongo上 执行如下两个命令
mongodump --host 1.1.1.1:27401 -d qh -o databak
mongorestore -h 2.2.2.2:27017 -d qh  databak/qh  --authenticationDatabase admin -u root -p passwd

mongo的其他命令

给qh库创建一个root用户用于连接、读写
use admin
db.createUser(
{
user: "restricted",
pwd: "password",
roles: [ { role: "readWrite", db: "reporting" } ],
authenticationRestrictions: [ {
clientSource: ["192.0.2.0"],
serverAddress: ["198.51.100.0"]
} ]
}
)

use qh
db.updateUser("reportUser256",
{
pwd:"123",roles:["dbAdmin","userAdmin"]
}
)

  1. 数据库用户角色:read、readWrite;
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  4. 备份恢复角色:backup、restore;
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色:root
    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
  7. 内部角色:__system

参见https://docs.mongodb.com/manual/reference/method/

docker-mongo
默认创建 admin种的root
docker run --name mongo_latest -p 27401:27017 -v /website/mongo190112/db:/data/db -v /website/mongo1190112/configdb:/data/configdb -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=pwd -d mongo:latest --auth
之后需要exec -it bash进去
mong
db.auth("root","pwd") #返回1
use qh
db.createUser({user:"root",pwd:"123",roles:["readWrite"]})
然后程序使用root 123 连qh

相关文章

网友评论

      本文标题:mongo 恢复阿里云 及导入导出

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