MongoDB Windows环境备份和还原

一. MongoDB的安装

1.1 下载安装

官网下载链接 https://www.mongodb.com/try/download/community 这里我选择的是

5.0.17版本的msi文件。下载完后安装 。我的安装目录是 D:\Program Files\MongoDB\Server\5.0

PS:安装 "Install MongoDB Compass" 不勾选,否则可能要很长时间都一直在执行安装,MongoDB Compass是一个图形界面管理工具,这里不安装也是没有问题的,可以自己去下载一个图形界面管理工具,比如:Navicat或者Robo3T

2.2配置MongoDB

在安装目录bin文件夹下有个文件mongod.cfg,没有的话就新建一个。可以设置db存储文件夹,log存储文件夹,IP和端口等

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: D:\Program Files\MongoDB\Server\5.0\data
  journal:
    enabled: true
#  engine:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  D:\Program Files\MongoDB\Server\5.0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

CMD以管理员角色运行,CD到bin文件夹,运行,这时创建完了服务。在Windows服务里有了MongoDB服务,先不启动这个服务:

mongod --config "D:\Program Files\MongoDB\Server\5.0\bin\mongod.cfg" --install --serviceName "MongoDB" --serviceDisplayName "MongoDB"

接下来创建管理员用户。不要关闭上面的CMD,再打开一个CMD,CD到bin目录下,运行:

mongo

然后运行

> use admin

运行创建管理员用户。mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。admin用户用于管理账号,不能进行关闭数据库等操作。

db.createUser({ user: "admin", pwd: "password", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

运行创建root角色用户。角色:root。root角色用于关闭数据库

db.createUser({user: "root",pwd: "rootpassword", roles: [ { role: "root", db: "admin" } ]})

创建完admin管理员,创建一个超级管理员root。角色:root。root角色用于关闭数据库。

这时候可以启动服务了,启动服务前要关闭第一个CMD,要不然服务会启动失败,因为端口被占用了

二. MongoDB备份

较新的版本安装后bin文件夹里不会有备份和还原的程序,去官网下载工具程序 Download MongoDB Command Line Database Tools | MongoDB

 为方便使用,下载解压后的exe文件都放在bin文件夹里,这里用到的是mongodump.exe程序

mongodump -h 0.0.0.0 --port 27017 -u root -p rootpassword -o /opt/backup

这是备份所有数据库,h是host ip,port是端口,u是用户名,p是密码,o是备份文件的文件夹

三. MongoDB还原

还原用到的程序是mongorestore.exe。

mongorestore -h 0.0.0.0 --port 27017 --authenticationDatabase admin -u root -p rootpassword -d testdb --drop E:\mongodbBackup\backup\testdb

其中h是host ip,port是端口,u是用户名,p是密码,d是数据库名称,drop是备份数据库文件夹

PS:网上说是这么写 mongorestore -h 0.0.0.0 --port 27017 -u root -p rootpassword -d testdb --drop E:\mongodbBackup\backup\testdb ,我试了会报错  error connecting to host: could not connect to server: connection() error occurred during connection handshake: auth error: sasl conversation error: unable to authenticate using mechanism "SCRAM-SHA-1": (AuthenticationFailed) Authentication failed.

需要加上--authenticationDatabase admin 才行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值