0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MongoDB开源文档数据库的安装

CHANBAEK 来源:myfreax 作者:myfreax 2022-12-06 17:00 次阅读

MongoDB开源文档数据库。它属于一个称为NoSQL的数据库家族,它与传统关系型基于表的SQL数据库不同,如MySQL和PostgreSQL。

在MongoDB中,数据存储在灵活的JSON的文档中,字段随文档的不同而不同。它不需要预定义的结构,并且数据结构可以随时间改变。

教程介绍如何在Ubuntu 20.04安装MongoDB Community Edition。在开始本教程之前请确保你以root或者具有sudo权限的用户登录。

安装MongoDB

标准的Ubuntu 20.04仓库包含过时的MongoDB版本。在Ubuntu 20.04安装最新的MongoDB非常简单。

在撰写本文时,可从官方MongoDB仓库获得的最新版本的MongoDB是6.0版。如果你需要安装5.0版本,请将命令的6.0替换为5.0。

首先将安装导入MongoDB的GPG密钥的软件包,运行apt命令。然后运行wget导入GPG密钥,运行echo和tee的组合命令添加MongoDB软件源。

sudo apt update
sudo apt install -y dirmngr wget gnupg apt-transport-https ca-certificates software-properties-common gnupg

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee etc/apt/sources.list.d/mongodb-org-6.0.list

当导入MongoDB的软件源之后,运行命令sudo apt install -y mongodb-org安装MongoDB服务器以及所有工具。

如果你MongoDB运行在Docker,可以运行命令sudo apt install mongodb-org-shell mongodb-org-tools仅安装MongoDB客户端和MongoDB工具。

sudo apt update
sudo apt install -y mongodb-org

sudo apt install mongodb-org-shell mongodb-org-tools

在与MongoDB进行交互时,首先启动MongoDB服务,运行命令sudo systemctl enable --now mongod,该命令还会设置MongoDB的自动启动。

要查看MongoDB服务运行状态请运行命令sudo systemctl status mongod

你也可以运行命令mongo --eval 'db.runCommand({ connectionStatus: 1 })' 直接连接到Mongodb服务器,它将会打印当前连接的状态。ok字段的1值表示成功。

sudo systemctl enable mongod --now 
sudo systemctl status mongod

当你完成MongoDB安装后,Ubuntu 20.04将会安装mongodb-org-server以及相应的初始化脚本和配置。

mongodb-org-shell也就是mongodb的客户端,它是MongoDB的交互式JavaScript接口。它用于执行命令行中的管理任务。

mongodb-org-tools包含用于导入和导出数据,统计信息以及其他程序的MongoDB工具。

MongoDB 权限控制

MongoDB配置文件名为mongod.conf,位于/etc目录中。该文件为YAML格式。

默认配置设置在大多数情况下就足够。但是,对于生产环境,我们建议取消对安全性部分的注释并启用授权。

配置文件中的authorization选项可启用基于角色的访问控制RBAC,该功能管理用户对数据库资源和操作的访问。

如果禁用此选项,则每个用户将有权访问所有数据库并执行任何操作。如果你需要启用此选项。请执行以下步骤。

使用你喜欢的文本编辑器,打开文件etc/mongod.conf。在本教程中,我们将使用vim打开文件etc/mongod.conf

然后使用vim搜索关键词authorization,并定位此选项,然后启用authorization授权验证。

sudo vim etc/mongod.conf
sudo systemctl restart mongod
security:
  authorization: enabled

etc/mongod.conf

完成后保存文件并退出vim,每次编辑MongoDB配置文件时,你都需要运行命令sudo systemctl restart mongod重新启动mongod服务以使更改生效。

要查找有关MongoDB中可用配置选项的更多信息,请访问配置文件选项文档页面。

创建 MongoDB用户

如果启用了MongoDB身份验证,则需要创建一个可以访问和管理MongoDB实例的管理用户。

首先使用mongodb客户端连接MongoDB服务器。当你进入MongoDB Shell时运行命令use admin切换到admin数据库。

然后运行createUser命令来创建用户。其中user是用户名,pwd是密码,role的userAdminAnyDatabase也就是管理任何数据库。

admin是MongoDB的内置数据库。不要忘记设置更安全的密码。您可以根据需要命名MongoDB管理用户。

mongo
use admin
db.createUser(
  {
    user: "mongoAdmin",
    pwd: "changeMe",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

当创建用户完成后运行命令quit()退出Mongo Shell。要测试更改,请以创建的管理用户访问Mongo Shell。

运行命令mongo -u mongoAdmin -p --authenticationDatabase admin-u选项表示指定用户,--authenticationDatabase选项指定要在那个数据库进行验证。

切换admin数据库,然后运行show users,您应该看到新创建的用户的信息。

mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
show users

结论

我们向您展示了如何在Ubuntu 20.04安装MongoDB。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3759

    浏览量

    64265
  • Ubuntu
    +关注

    关注

    5

    文章

    560

    浏览量

    29549
  • nosql
    +关注

    关注

    0

    文章

    39

    浏览量

    9988
  • mongodb
    +关注

    关注

    0

    文章

    22

    浏览量

    362
收藏 人收藏

    评论

    相关推荐

    MySQL和MongoDB的对比

    应运而生,以满足新应用的需求。 MongoDB用于新的应用程序,以及扩充或替换现有的关系型基础设施(关系型数据库)。什么是Mysql MySQL是由Oracle公司开发,发布和支持的受欢迎的开源关系
    发表于 08-28 14:51

     华为云MongoDB弹性伸缩能力提升100倍

    (关系型数据库)丰富的查询能力。近期,华为云数据库将推出MongoDB增强版云服务,上百倍的弹性伸缩能力提升使其备受业界关注。   众所周知,受社区版影响,直接使用开源
    发表于 08-03 13:00

    阿里云数据库MongoDB版架构及安全解读

    12月18日,阿里云100%兼容MongoDB的云数据库AliCloudDB for MongoDB宣布开放公测,基于三节点副本集的高可用框架,阿里云将数据库的业务可用性保障提高到了9
    发表于 10-13 11:21 0次下载
    阿里云<b class='flag-5'>数据库</b><b class='flag-5'>MongoDB</b>版架构及安全解读

    redis和mongodb数据库对比_redis、memcache、mongoDB 对比

    本文是对redis和mongodb数据库对比分析。以及redis、memcache、mongoDB 区别对比。MongoDB和Redis都是NoSQL,采用结构型
    发表于 02-07 08:45 4231次阅读
    redis和<b class='flag-5'>mongodb</b><b class='flag-5'>数据库</b>对比_redis、memcache、<b class='flag-5'>mongoDB</b> 对比

    阿里云与NoSQL数据库合作,最新版产品将上线阿里云

    开源数据库厂商MongoDB与阿里云在北京宣布达成战略合作,作为合作的第一步,最新版MongoDB 4.2数据库产品将率先上线阿里云平台。随
    的头像 发表于 11-28 15:12 2747次阅读

    mongoDb入门并整合springboot

      镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站   MongoDb简介 MongoDb是一种非关系型数据库,是现在非常火热的noSQL。也被称为
    发表于 12-07 10:51 409次阅读

    华为云文档数据库服务更安全

    __华为云文档数据库服务更安全 __ 华为云文档数据库服务(Document Database Service)作为华为云数据库的一款明星产
    的头像 发表于 10-27 11:07 705次阅读

    数据库数据恢复】MongoDB数据库数据迁移报错的数据恢复案例

    MongoDB数据库存储方式是将文档存储在集合之中,而不是像Oracle、MySQL一样的关系型数据库MongoDB
    的头像 发表于 12-06 11:46 1262次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】<b class='flag-5'>MongoDB</b><b class='flag-5'>数据库</b><b class='flag-5'>数据</b>迁移报错的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复】MongoDB数据库数据恢复案例

    MongoDB数据库数据恢复环境: MongoDB数据库部署在一台虚拟机上,虚拟机操作系统为Windows Server2012。
    的头像 发表于 01-05 13:50 899次阅读
    【<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复】<b class='flag-5'>MongoDB</b><b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复案例

    MongoDB数据库文件损坏的数据恢复案例

    MongoDB数据库服务未关闭的情况下,管理员将MongoDB数据库文件从原分区拷贝到其他分区,然后将MongoDB
    的头像 发表于 04-18 14:53 762次阅读
    <b class='flag-5'>MongoDB</b><b class='flag-5'>数据库</b>文件损坏的<b class='flag-5'>数据</b>恢复案例

    PetaExpress云数据库 MongoDB(mongodb数据库)优势

    MongoDB数据模型是针对文档的。所谓文档是一种类似JSON的结构。可以简单理解,MongoDB存储在
    的头像 发表于 07-14 10:06 536次阅读

    数据库数据恢复——MongoDB数据库介绍和数据恢复案例

    MongoDB数据库文档数据存储,将文档存储在集合之中,不是像MySQL一样的关系型
    的头像 发表于 11-08 15:04 838次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复——<b class='flag-5'>MongoDB</b><b class='flag-5'>数据库</b>介绍和<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—MongoDB数据库服务无法启动并报错数据恢复案例

    一台Windows Server操作系统的虚拟机,虚拟机上部署有MongoDB数据库
    的头像 发表于 11-22 14:48 516次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—<b class='flag-5'>MongoDB</b><b class='flag-5'>数据库</b>服务无法启动并报错<b class='flag-5'>数据</b>恢复案例

    深耕文档数据库12载,SequoiaDB再开源

    1月15日,巨杉数据库举行SequoiaDB新特性及开源项目发布活动。本次活动回顾了巨杉数据库深耕JSON文档数据库12年的发展历程与技术
    的头像 发表于 01-16 13:06 270次阅读

    MongoDB数据恢复—MongoDB数据库文件损坏的数据恢复案例

    服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库MongoDB数据库故障&
    的头像 发表于 04-23 14:48 378次阅读
    <b class='flag-5'>MongoDB</b><b class='flag-5'>数据</b>恢复—<b class='flag-5'>MongoDB</b><b class='flag-5'>数据库</b>文件损坏的<b class='flag-5'>数据</b>恢复案例