MongoDB
1. MongoDB 安装
1.1 安装前的准备
这里提供 MongoDB 安装文件及 MongoDB 可视化管理工具 Robot 3T。
百度网盘(提取码:5354)
天翼云盘(访问码:bvb4)
MongoDB 官网下载
1.2 安装 MongoDB
出现下面这个界面时,取消勾选 MongoDB Compass(图形界面管理工具) 的安装,这里我们使用 Robot 3T,而且 MongoDB Compass 的安装会特别慢,可能要等几个小时以上。
1.3 安装 Robot 3T
由于 Robot 3T 属于傻瓜式安装软件,一直点击 Next 即可,这里不作描述说明。
2. MongoDB 配置
2.1 配置环境变量
这里提供一个 MongoDB 环境变量配置的批处理文件,把下面的文本保存为 vbs
格式的文件(文件名任意)。
on error resume next
' 系统环境变量的数组对象 Path = CreateObject("Scripting.FileSystemObject").GetFolder(".").Path
set sysenv=CreateObject("WScript.Shell").Environment("system")
' 添加变量
sysenv("Path")="D:\dev\MongoDB\Server\3.6\bin;"+sysenv("Path") ' 这里需要修改为 MongoDB 的安装目录
wscript.echo "MongoDB environment variable configuration succeeded"
使用时双击保存的文件,看到下面的提示框,说明 MongoDB 环境变量已配置完成。
2.2 创建数据库文件存放位置
由于启动 MongoDB 服务必须创建数据库文件的存放文件夹,否则命令不会自动创建,服务也就无法启动成功。
在 MongoDB 安装目录下新建一个 data
文件夹,在 data 文件夹下新建一个 db
文件夹,用于存放数据库文件。
2.3 注册本地 Windows MongoDB 服务
注册本地 Windows MongoDB 服务后,可以设置开机自启动,也可以不进入 bin 目录通过命令行 net start MongoDB
启动 MongoDB。
-
在 data 文件夹下新建一个
log
文件夹,用于存放日志。
-
创建 mongo.config 配置文件(与 bin 目录同级)
在配置文件中加入以下配置# 数据库路径 dbpath="D:\dev\MongoDB\Server\3.6\data\db" # 日志输出文件路径 logpath="D:\dev\MongoDB\Server\3.6\data\log\mongo.log" # 错误日志采用追加模式 logappend=true # 启用日志文件,默认启用 journal=true # 过滤一些无用的日志信息,若如要调试设置为false quiet=true # 端口号 默认27017 port=27017 # 任意IP都能访问 bind_ip=0.0.0.0 # 密码验证 auth=true
-
安装 MongoDB 服务
以 管理员身份 打开 cmd 命令窗口,进入 MongoDB 安装目录下的 bin 文件夹,执行以下命令(注意:一定要以 管理员身份 打开 cmd 命令窗口,否则以下命令执行会一直报错)。mongod -dbpath "D:\dev\MongoDB\Server\3.6\data\db" -logpath "D:\dev\MongoDB\Server\3.6\data\log\mongo.log" -bind_ip_all -install -serviceName "MongoDB"
MongoDB 就是启动的服务名字,如果执行上面的命令出现错误,先执行
sc delete MongoDB
删除服务,再次输入上面的命令即可。
至此,MongoDB 服务已配置完成。
2.4 启动 MongoDB 服务
以 管理员身份 打开 cmd 命令窗口,执行以下命令启动 MongoDB 服务。
net start MongoDB
如果启动报错,则可以执行 mongod.exe --remove --serviceName "MongoDB"
命令移除 MongoDB 服务,重新 安装 MongoDB 服务 即可。
2.5 设置 MongoDB 数据库访问密码
为admin 数据库设置设置访问用户及密码。
首先要在 mongo.config 配置文件中添加 auth=true
这个配置,重新启动 MongoDB 服务,使配置生效。
以 管理员身份 打开 cmd 命令窗口,依次执行以下命令。
# 进入 MongoDB 环境
mongodb
# 进入 admin 数据库
use admin
# 创建用户密码
db.createUser( {user: "root",pwd: "root",roles: [ { role: "root", db: "admin" } ] } )
通过 db.auth("用户名","密码")
可以验证用户及密码创建结果,返回 1 则说明用户密码生效。
2.6 MongoDB 常用命令
# 开启服务
net start MongoDB
# 关闭服务
net stop MongoDB
3. MongoDB 备份还原
3.1 备份
以 管理员身份 打开 cmd 命令窗口,执行以下命令。
mongodump -h 主机地址 -p 端口号 -u 用户名 -p 密码 -d 数据库 -o 备份文件路径
# 例子
mongodump -h localhost -p 27017 -u root -p root -d admin -o c:\mongobak
3.2 还原
以 管理员身份 打开 cmd 命令窗口,执行以下命令。
mongorestore -h 主机地址 -p 端口号 -u 用户名 -p 密码 -d 数据库 还原文件路径
# 例子
mongorestore -h localhost -p 27017 -u root -p root -d admin c:\mongobak
3.3 Windows 批处理全量备份脚本
思路:每周备份一次,每次运行脚本删除上周的备份文件(省略定时任务配置)。
@echo off
>tmp.vbs echo wscript.echo dateadd("d",-7,date())
for /f "tokens=1-3 delims=-/ " %%a in ('cscript //nologo tmp.vbs') do set/a y=%%a,m=100%%b,d=100%%c
del tmp.vbs&set LastBackupTime=%y%%m:~-2%%d:~-2%&set Today=%date:~0,4%%date:~5,2%%date:~8,2%
echo ****** MongoDB Full Backup Start ******
rd /s /q D:\bakcup\mongo\%LastBackupTime%
"D:\dev\MongoDB\Server\3.6\bin\mongodump.exe" -h 127.0.0.1 -p 27017 -u root -p root -d admin -o D:\bakcup\mongo\%Today%
echo ****** MongoDB Full Backup End ******
@echo on
4. MongoDB 文件上传案例(Java)
4.1 思路
上传:实现把文件上传到 MongoDB 数据库,并将文件信息保存到在 PostgreSQL 中。
下载:通过 PostgreSQL 中保存的文件信息,到 MongoDB 数据库获取文件。
PostgreSQL 中保存文件信息的表结构设计:
字段名 | 类型 | 注释 |
---|---|---|
id | varchar(50) | 主键 |
master_id | varchar(50) | 业务 ID |
prefix | varchar(50) | 业务前缀 |
suffix | varchar(50) | 业务后缀 |
file_type | varchar(50) | 文件类型 |
file_name | varchar(100) | 文件名 |
file_size | float8(53) | 文件大小 |
upload_time | timestamp | 上传时间 |
mongo_id | varchar(100) | MongoDB 文件 ID |
mongo_thum_id | varchar(100) | MongoDB 缩略图 ID(图片压缩) |
is_deleted | varchar(1) | 逻辑删除标记 |
deleted_time | timestamp | 删除时间 |
案例详见 mongodb_demo