文章目录
- 1. MongoDB概述
- 2. 安装MongoDB
- 2.1 在MongoDB官网选择对应版本
- 2.2 去到MongoDB安装目录,并下载MongoDB安装包
- 2.3 解压MongoDB安装包
- 2.4 重命名解压后的MongoDB文件夹名
- 2.5 创建MongoDB数据库数据存放路径
- 2.6 创建MongoDB日志文件存放路径
- 2.7 进入MongoDB文件下面的bin目录创建配置文件
- 2.8 配置MongoDB环境变量
- 2.9 启动MongoDB
- 2.10 进入MongoDB数据库控制台
- 2.11 CentOS8上为MongoDB创建SELinux策略
- 2.12 MongoDB中创建管理员用户
- 2.13 重启MongoDB
- 扩展阅读
1. MongoDB概述
MongoDB
是一个基于分布式文件存储的数据库。由C++
语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB
是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
它支持的数据结构非常松散,是类似json
的bson
格式,因此可以存储比较复杂的数据类型。Mongo
最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB
服务端可运行在Linux
、Windows
平台,支持32
位和64
位应用,默认端口为27017
。
推荐运行在64
位平台,因为MongoDB
在32
位模式运行时支持的最大文件尺寸为2
GB。
2. 安装MongoDB
2.1 在MongoDB官网选择对应版本
- 首先访问MongoDB官网地址:
https://www.mongodb.com/try/download/community
- 选择对应版本,点击“Copy Link”获取下载地址,如下图:
2.2 去到MongoDB安装目录,并下载MongoDB安装包
wget命令后是上一步复制的链接
cd /usr/local/
wget https://fastdl.mongodb.org/linux/mongodb-linux-aarch64-rhel82-5.0.16.tgz
2.3 解压MongoDB安装包
tar -zxvf mongodb-linux-aarch64-rhel82-5.0.16.tgz
2.4 重命名解压后的MongoDB文件夹名
mv mongodb-linux-aarch64-rhel82-5.0.16 mongodb
2.5 创建MongoDB数据库数据存放路径
mkdir -p /usr/local/mongodb/data/
命令解读:
这条命令是在Linux系统中创建一个目录。其中,mkdir是创建目录的命令,-p表示递归创建目录,如果目录不存在则创建,如果已存在则不会报错。/usr/local/mongodb/data/是要创建的目录路径,其中/usr/local/是一般的安装程序默认安装的位置。该命令的作用是在/usr/local/mongodb/目录下创建一个名为data的目录,如果mongodb和local目录不存在,则会自动创建它们。这个目录一般用来存储MongoDB数据库的数据文件。
2.6 创建MongoDB日志文件存放路径
mkdir /usr/local/mongodb/logs/
命令解读:
这个目录一般用来存储MongoDB数据库的日志文件。
问:运行上面命令需不需要加“-p”?
答:如果/usr/local/mongodb/目录不存在,则需要加-p参数,否则会报错。因为-p参数可以递归创建目录,如果目录不存在,则会自动创建它所在的目录,如果存在则不会报错。如果/usr/local/mongodb/目录已经存在,则可以直接使用mkdir /usr/local/mongodb/logs/命令创建logs目录,不需要加-p参数。
2.7 进入MongoDB文件下面的bin目录创建配置文件
cd /usr/local/mongodb/bin/
vim mongod.conf
输入如下信息,保存退出:
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/logs/mongodb.log
bind_ip=0.0.0.0
auth=true
port=27017
fork=true
journal=false
2.8 配置MongoDB环境变量
vim /etc/profile
输入如下信息,保存退出:
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
source /etc/profile
问:source /etc/profile 这行命令是什么意思?
答:这条命令是在Linux系统中执行/etc/profile文件中的命令,作用是重新加载环境变量
。/etc/profile文件是系统级别的环境变量配置文件,它包含了系统级别的环境变量设置和各种系统级别的默认配置。执行source /etc/profile命令可以重新加载这个文件,使修改后的环境变量生效。
具体来说,source /etc/profile命令可以让当前的Shell进程读取并执行/etc/profile文件中的命令,将其中定义的环境变量设置到当前Shell的环境变量中。这样,就可以在当前的Shell中使用这些环境变量了。一般在安装某些软件或修改系统环境变量后,需要执行source /etc/profile命令,以便让修改后的环境变量生效。
2.9 启动MongoDB
系统重启后,需要重新输入下面命令启用MongoDB命令
/usr/local/mongodb/bin/mongod --port 27017 --fork --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/logs/mongodb.log --logappend&
检查端口是否占用:
netstat -lanp | grep "27017"
2.10 进入MongoDB数据库控制台
./mongo
注:
mongo #进入MongoDB控制台
show dbs #查看默认数据库
use admin #切换到admin数据库
exit #退出MongoDB控制台
2.11 CentOS8上为MongoDB创建SELinux策略
这一部分命令运行截图:
(1) 如果您已将SELinux配置为强制模式,则必须为MongoDB创建SELinux策略。
检查当前的SELinux模式:
getenforce
(2) 使用checkpolicy命令来验证自定义selinux策略,安装checkpolicy:
dnf -y install checkpolicy
(3) 创建一个定制的selinux策略文件:
vim mongodb_cgroup_memory.te
在文件中添加以下指令:
module mongodb_cgroup_memory 1.0;
require {
type cgroup_t;
type mongod_t;
class dir search;
class file { getattr open read };
}
#============= mongod_t ==============
allow mongod_t cgroup_t:dir search;
allow mongod_t cgroup_t:file { getattr open read };
(4) 编译并应用此selinux策略:
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te
semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod
semodule -i mongodb_cgroup_memory.pp
命令解读:
2.12 MongoDB中创建管理员用户
默认情况下,MongoDB服务器未启用访问控制,因此任何人都可以访问MongoDB服务器并执行管理操作。
所以我们需要创建一个admin用户并在MongoDB服务器中启用访问控制。
(1) 连接MongoDB shell:
mongo
(2) 查看数据库:
show dbs
(3) 连接管理数据库:
> use admin;
switched to db admin
>
(4) 创建管理员用户:
> db.createUser(
{
user: "Waldo",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase",db: "admin" } ]
}
)
(5) 列出MongoDB数据库中所有用户:
> show users;
2.13 重启MongoDB
这里使用的是手动安装的 MongoDB,那么 systemd 将无法管理 mongod 服务。在这种情况下,需要使用 MongoDB 提供的 “mongod” 命令来启动和停止 MongoDB 服务。
- 停止 MongoDB 服务
sudo /usr/local/mongodb/bin/mongod --shutdown --dbpath /usr/local/mongodb/data
这将使用指定的 dbpath
停止 MongoDB 服务。请注意,在这个例子中,mongod
可执行文件的路径和 dbpath
的路径是基于您的安装和配置而定。
- 确认 MongoDB 服务已经停止
ps -ef | grep mongod
此时输入命令mongo
无法进入MongoDB控制台
- 再次启动 MongoDB 服务
sudo /usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data --fork --logpath /usr/local/mongodb/logs/mongodb.log
扩展阅读
- MongoDB详解,用心看这篇就够了【重点】