CentOS 8 手动安装MongoDB

1. MongoDB概述

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

MongoDB服务端可运行在LinuxWindows平台,支持32位和64位应用,默认端口为27017
推荐运行在64位平台,因为MongoDB32位模式运行时支持的最大文件尺寸为2GB。

2. 安装MongoDB

2.1 在MongoDB官网选择对应版本

  1. 首先访问MongoDB官网地址:https://www.mongodb.com/try/download/community
  2. 选择对应版本,点击“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 服务。

  1. 停止 MongoDB 服务
sudo /usr/local/mongodb/bin/mongod --shutdown --dbpath /usr/local/mongodb/data

这将使用指定的 dbpath 停止 MongoDB 服务。请注意,在这个例子中,mongod 可执行文件的路径和 dbpath 的路径是基于您的安装和配置而定。

  1. 确认 MongoDB 服务已经停止
ps -ef | grep mongod

此时输入命令mongo无法进入MongoDB控制台

  1. 再次启动 MongoDB 服务
sudo /usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data --fork --logpath /usr/local/mongodb/logs/mongodb.log

扩展阅读

  1. MongoDB详解,用心看这篇就够了【重点】

猜你喜欢

转载自blog.csdn.net/Waldocsdn/article/details/130155631