目录
0 前言
由于项目需求,准备采用MongoDB1对获取的图像(约数GB大小)及其属性进行管理。本文记录了在win10下安装MongoDB,并使用GridFS管理大文件的方法。
根据项目需求,可能会跟进Linux系统下的安装和使用方法。
注意,由于MongoDB几个版本有改动,本文仅在MongoDB5.0上进行过测试!!
1 下载安装文件和安装
1.1 下载安装文件
下载安装文件,安装文件下载网址在这里2。选择安装的系统为windows,下载msi安装文件。
1.2 安装MongoDB
-
双击下载的msi文件进入安装。这里安装的版本是5.0.3。
-
选择Customize进入自定义安装。(要是比较懒,直接Complete就完事了)
- 修改软件的安装路径
- 设置数据库文件存储路径和日志存储路径
-
不要安装MongoDB-Compass。因为下载的服务器在境外,非常费时间。安装完成后可以手动安装MongoDB-Compass,也可以安装其他的可视化管理工具。
-
完成
1.3 环境配置和启动
- 添加环境变量
添加一个环境变量:安装路径里面的bin文件夹
例:我的数据库安装在D:\MongoDB
文件夹下,那么就添加一个环境变量为D:\MongoDB\bin
- 为MongoDB添加一个数据库文件夹**(重要)**
例:假设你安装时设置的数据文件夹为E:\MongoDB_DATA\data
(和日志路径一起设置的,想起来了嘛?_?),那么就新建一个文件夹E:\MongoDB_DATA\data\db
,这个文件夹会储存数据库的数据。 - 启动MongoDB
- 方法1(旧方法,不推荐):打开一个cmd,然后输入以下命令:
cd /d D:\MongoDB\bin # 这里是添加的环境变量,也就是切换工作目录到安装的数据库下
mongod -dbpath E:\MongoDB_DATA\data\db # 这里是刚刚新建的文件夹,也就是指定数据库的数据目录
输入完毕,数据库就可以正常工作了。但是如果关闭这个控制台窗口的话,数据库会停止工作。
- 方法2(新方法,推荐):直接启动MongoDB服务
利用组合键ctrl+shift+esc
打开任务管理器,选择【服务】,然后开启【MongoDB】服务即可。
- 用脚本启动数据库
如果懒得每次输命令开数据库,可以新建一个.bat文件,文件里面这样写:
cd /d D:\MongoDB\bin # 这里是添加的环境变量
mongod -dbpath E:\MongoDB_DATA\data\db # 这里是刚刚新建的文件夹
然后双击运行就行了。
1.4 安装MongoDB Database Tools
如果想在MongoDB中上传大文件,还需要mongofiles
帮助我们实现GridFS功能。根据官方文档3,自从MongoDB版本4.4以后,mongofiles
不再集成在MongoDB的安装文件中,而是集成在MongoDB Database Tools中,需要另外安装。根据官方文档4,请根据自己MongoDB数据库版本下载对应版本的MongoDB Database Tools。
这里5给出了MongoDB Database Tools的下载地址。
下载zip格式的文件,随后将压缩文件里的bin/mongofiles.exe
复制到MongoDB的安装目录里面。例:复制到D:\MongoDB\bin\
文件夹下即可。
2 使用
2.1 创建管理员账户并开启远程和密码登录
在cmd窗口输入:
> use admin
> db.createUser({user:"database_admin",pwd:"123456",roles:[{role:"root",db:"admin"}]})
这就创建了一个用户名为database_admin
,密码为123456
的管理员账户。实际上这个用户名可以随便取,例如root
、LiHua
都行,因为这个用户是属于admin数据库的**”超级用户**。
注:超级用户一定是属于admin数据库的6
- 开启远程登录7
MongoDB默认是不开启远程登录的,此时需要修改xxx/bin/mongodb.cfg
来实现远程登录功能。打开mongodb.cfg
文件后找到:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1
修改为:
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,0.0.0.0
- 开启密码登录7
MongoDB默认是不开启密码登录的,不用密码就可以直接查看全部数据。此时需要修改xxx/bin/mongodb.cfg
来实现密码验证功能。打开mongodb.cfg
文件后找到:
# network interfaces
#security:
修改为:
security:
authorization: enabled