一. 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 才行