6.2 整合MongoDB
- 1. MongoDB简介
- 2. MongoDB安装
- 2.1 下载
- 2.2 配置MongoDB
- 2.3 MongoDB的启动和关闭
- 1. 启动MongoDB
- 2. 关闭MogoDB
- 2.4 安全管理
- *****************************************************************************
1. MongoDB简介
MongoDB是一种面向文档的数据库管理系统,它是一个介于关系型数据库和非关系型数据库之间的产品,MongoDB功能丰富,它支持一种类似JSON的BSON数据格式,既可以存储简单的数据格式,也可以存储复杂的数据类型。
MongoDB最大的特点是它支持的查询语言非常强大,并且还支持对数据建立索引。总体来说,MongoDB是一款应用相当广泛的NoSQL数据库。
2. MongoDB安装
本案例使用的MongoDB版本为写作本书时的最新版本4.0.0,安装环境为CentOS 7。安装步骤如下。
2.1 下载
//1.下载MongoDB
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.0.tgz
//2.解压
tar -zxvf mongodb-linux-x86_64-4.0.0.tgz
//3.重命名
mv mongodb-linux-x86_64-4.0.0 mongodb
2.2 配置MongoDB
进入mongodb目录下,创建两个文件夹db和logs,分别用来保存数据和日志,代码如下:
cd mongodb
mkdir db
mkdir logs
然后进入bin目录下,创建一个新的MongoDB配置文件mongo.conf,文件内容如下:
dbpath=/opt/mongodb/db
logpath=/opt/mongodb/logs/mongodb.log port=27017
fork=true
配置解释:
- 第1行配置表示数据存储目录。
- 第2行配置表示日志文件位置。
- 第3行配置表示启动端口。
- 第4行配置表示以守护程序的方式启动MongoDB,即允许MongoDB在后台运行。
2.3 MongoDB的启动和关闭
1. 启动MongoDB
配置完成后,还是在bin目录下,运行如下命令启动MongoDB:
./mongod -f mongo.conf --bind_ip_all
-f
表示指定配置文件的位置,--bind_ip_all
则表示允许所有的远程地址连接该MongoDB实例。
MongoDB启动成功后,在bin目录下再执行mongo命令,进入MongoDB控制台,然后输入db.version()
,如果能看到MongoDB的版本号,就表示安装成功:
./mongo
db.version()
2. 关闭MogoDB
默认情况下,启动后连接的是MogoDB中的test库,而关闭MongoDB的命令需要在admin 库中执行,因此关闭MongoDB需要首先切换到admin库,然后执行db.shutdownServer();命令,完整操作步骤如下:
use admin;
db.shutdownServer();
exit
服务关闭后,执行exit命令退出控制台,此时如果再执行./mongo命令就会执行失败,如图6-14 所示。
2.4 安全管理
默认情况下,启动的MongoDB没有登录密码,在生产环境中这是非常不安全的,但是不同于MySQL、Oracle等关系型数据库,MongoDB中每一个库都有独立的密码,在哪一个库中创建用户就要在哪一个库中验证密码。
要配置密码,首先要创建一个用户,例如在admin库中创建一个用户,代码如下:
use admin;
db.createuser({user:"admin",pwd:"Abc1234%",roles:[{role:"readwrite",db:"test"}]})
新创建的用户名为admin,密码是Abc1234%,roles表示该用户具有的角色,这里的配置表示该用户对test库具有读和写两项权限。
用户创建成功后,关闭当前实例,然后重新启动,启动命令如下:
./mongod -f mongo.conf --bind_ip_all
启动成功后,再次进入控制台,然后切换到admin库中验证登录(默认连接上的库是test库),验证成功后就可以对test库执行读写操作了,代码如下:
./mongo
db.auth("admin","Abc1234%")
如果db.auth("admin","Abc1234%")
命令执行结果为1,就表示认证成功,可以执行对test库的读写操作。