mongo 恢复阿里云 及导入导出
阿里云的文档地址 :(已经失效)
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"]
}
)
- 数据库用户角色:read、readWrite;
- 数据库管理角色:dbAdmin、dbOwner、userAdmin;
- 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
- 备份恢复角色:backup、restore;
- 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
- 超级用户角色:root
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)- 内部角色:__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