Linux CentOS7 环境下安装 MongoDB

聆听 沉淀 传播 … 关注微信公众号【架构技术之美】,了解更多技术和学习资料

Mongo 相关文章

标题文章连接
Windows 环境下安装 MongoDBhttps://blog.csdn.net/chenlixiao007/article/details/107968119
Mongodb 配置文件详解编写中

一、演示环境

  1. Linux CentOS 7
  2. mongodb-linux-x86_64-rhel70-4.0.21.tgz

二、安装包下载

官网下载地址:https://www.mongodb.com/try/download/community

在这里插入图片描述

三、软件安装和启动

3.1 将下载好的安装包上传到Linux服务器,并解压

tar -zxvf mongodb-linux-x86_64-rhel70-4.0.21.tgz

在这里插入图片描述

3.2 将解压后的目录移动到/usr/local目录下,并将目录改名为mongodb

mv mongodb-linux-x86_64-rhel70-4.0.21 /usr/local/mongodb

3.3 进入mongodb目录,并创建文件夹data,在data文件夹下,再创建db文件夹(用于存放数据库数据)和log文件夹(存放mongo日志);然后为其设置可读写权限。

# 创建文件夹
mkdir data
mkdir data/db
mkdir data/log

# 设置可读写权限
sudo chmod 777 data/db
sudo chmod 777 data/log

3.4 再mongodb目录下新建配置文件mongodb.conf(可选,但建议配置),使用vi mongodb.conf命令新建文件,输入以下内容:

# 数据库数据存放目录
dbpath=/usr/local/mongodb/data/db
# 日志文件存放目录
logpath=/usr/local/mongodb/data/log/mongodb.log
# 日志追加方式
logappend=true
# 端口
port=27017
# 是否认证
auth=true
# 以守护进程方式在后台运行
fork=true
# 远程连接要指定ip,否则无法连接;0.0.0.0代表不限制ip访问
bind_ip=0.0.0.0

3.5 配置环境变量,使用sudo vi /etc/profile命令打开系统文件,并在末尾加入以下内容后保存,最后使用source /etc/profile命令重启系统配置。

export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

3.6 启动Mongo服务

# -f 等同于--config
mongod -f /usr/local/mongodb/mongodb.conf

在这里插入图片描述
3.7 验证,连接和访问MongoDB。要进入 mongodb 后台管理,可以使用 mongodb/bin 目录下的 mongo 命令。MongoDB Shell 是 MongoDB 自带的交互式 Javascript shell,用来对 MongoDB 进行操作和管理的交互式环境。当进入 mongoDB 后台后,它默认会链接到 test 文档(数据库)
在这里插入图片描述

四、其他配置

4.1 开放端口

CentOS 7 版本对防火墙进行了加强,不再使用原来的 iptables,而是启用 firewall。默认情况下,不开放任何端口。如果需要远程连接服务器上的mongodb服务,则要开放mongodb的端口,即27017。

# 开放27017端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
# 使配置生效
firewall-cmd --reload
# 查看开放的端口,验证是否成功
firewall-cmd --zone=public --list-ports

在这里插入图片描述

4.2 检查mongodb服务状态

# 查看mongodb进程状态
ps aux | grep mongo
# 检查端口是否启动
netstat -lanp | grep 27017

4.3 关闭mongodb

# 通过kill命令杀死mongodb服务
kill -9 PID
# 通过mongod命令关闭mongodb服务
mongod -f /usr/local/mongodb/mongodb.conf --shutdown

在这里插入图片描述

4.4 开机自启动

使用vi /lib/systemd/system/mongodb.service命令创建开机配置文件,输入以下内容:

[Unit]
    Description=mongodb
    After=network.target remote-fs.target nss-lookup.target
[Service]
    Type=forking
    ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/mongodb.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/usr/local/mongodb/bin/mongod --shutdown -f /usr/local/mongodb/mongodb.conf
    PrivateTmp=true
[Install]
    WantedBy=multi-user.target

执行命令,使之生效

# 启动mongodb
systemctl start mongodb.service
# 查看服务状态
systemctl status mongodb.service
# 开机自启动
systemctl enable mongodb.service
# 修改mongodb.service文件,需要重新加载文件
systemctl daemon-reload

在这里插入图片描述

五、设置用户和密码

因为我们启动mongodb的配置文件中,指定了auth=true,即开启认证。默认情况下,mongod也是没有管理员账户的。因此需要在admin数据库中使用db.createUser()命令添加管理员帐号或其他角色。

5.1 mongodb内置角色

  1. 数据库用户角色:read、readWrite
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
  4. 备份恢复角色:backup、restore
  5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  6. 超级用户角色:root
  7. 内部角色:__system

5.2 创建管理员账号

切换到admin数据库,使用以下命令创建管理账号,拥有操作所有数据库权限。

db.createUser({user:"admin",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})

在这里插入图片描述

5.3 验证

使用mongo命令进入mongo命令模式,如果不进行db.auth("用户名","密码")进行用户验证的话,是执行不了任务命令的,只有通过认证才可以。

在这里插入图片描述

5.4 演示对单个数据库创建用户和密码

平常开发中,我们会创建新的数据库,而且需要用新的用户进行操作数据库,那就需要创建新的用户和密码,并设置对此数据库的操作权限。
例如,以下演示创建nobody用户,密码为123456,并设置对nobody数据库用读写的权限。

db.createUser({user:'nobody',pwd:'123456',roles:[{role:'readWrite',db:'nobody'}]})

在这里插入图片描述

5.5 可视化工具连接

我们用Mongo可视化工具(例如 Studio 3T For MongoDB)连接数据库,不同用户名和密码进行登录的时候,其可操作的数据库范围也是不同的(角色设置原因)。

注意,当连接的数据库没有设置用户认证时,连接时不需要填写用户名和密码。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页