如何在Ubuntu上安装MongoDB?

这篇具有很好参考价值的文章主要介绍了如何在Ubuntu上安装MongoDB?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Ubuntu安装MongoDB

MongoDB安装很简单,无需下载源文件,可以直接用apt-get命令进行安装。 打开终端,输入以下命令

sudo apt-get install mongodb

这时装好以后应该会自动运行mongod程序,通过命令查看进程是否已经启动

pgrep mongo -l

命令窗口结果

root@iZm5eetszs07500os8erolZ:~# pgrep mongo -l
32216 mongod
root@iZm5eetszs07500os8erolZ:~#

二、关闭/启动MongoDB

关闭MongoDB

sudo service mongodb stop 

启动MongoDB

sudo service mongodb start

三、systemd管理MongoDB

检查服务状态

sudo systemctl status mongodb

ubuntu安装mongodb,mongodb,ubuntu,数据库

命令窗口结果

其它命令

// 状态查询
sudo systemctl status mongodb

//停用
sudo systemctl stop mongodb

//启动
sudo systemctl start mongodb

//重启
sudo systemctl restart mongodb

修改 MongoDB 是否自动随系统启动(默认:启用)

sudo systemctl disable mongodb

sudo systemctl enable mongodb

注意:极不建议使用kill强制杀死进程,这样数据会存在损坏

四、卸载MongoDB

如果你从 Ubuntu 仓库安装 MongoDB 并想要卸载它(可能要使用官方支持的方式安装),可以输入:

sudo systemctl stop mongodb

sudo apt purge mongodb

sudo apt autoremove

五、目录说明

默认情况下,包管理器将创建 /var/lib/mongodb/var/log/mongodb,配置文件目录为/etc/mongodb.conf

六、使用MongoDB

6.1 使用数据库

MongoDB中,每个数据库的实例都可拥有多个用户,安全检查开启后,只要通过身份验证的用户才能够进行数据的读写操作。admin(管理员)和local(本地)是两个特殊的数据库,它们当中的用户可对任何数据库进行操作。这两个数据库中的用户可被看作是超级用户。经认证后,管理员用户可对任何数据库进行读写,同时能执行某些只有管理员才能执行的命令,如listDatabases和shutDown。

在默认情况下,mongod是监听在127.0.0.1之上的,任何客户端都可以直接连接27017,且没有认证。这样做的好处是,用户可以即时上手,不用担心被一堆配置弄的心烦意乱。然而坏处也是显而易见,如果直接在公网服务器上如此搭建MongoDB,那么所有人都可以直接访问并修改数据库数据了。

MongoDB默认是没有设置鉴权的,业界大部分使用MongoDB的项目也没有设置访问权限。这就意味着只要知道MongoDB服务器的端口,任何能访问到这台服务器的人都可以查询和操作MongoDB数据库的内容。在一些项目当中,这种使用方式会被看成是一种安全漏洞。

其实MongoDB本身有非常详细的安全配置准则,显然开发者也是想到了,然而他是将安全的任务推给用户去解决,这本身的策略就是偏向易用性的,对于安全性,则得靠边站了。

注:每个数据库都有自己的用户,创建用户的命令是db.createUser(),当你创建一个用户时,该用户就属于你当前所在的数据库。

MongoDB有一个比较奇怪的设置是,即便是一个admin用户,授权也必须在admin数据库下进行,而不能在其他数据库下进行。而授权之后admin用户就可以在任何数据库下进行任何操作了。当然数据库级别的用户在他自己的数据库下授权之后是不能到其他数据库进行操作的

标准 URI 连接语法:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
 
mongodb:// 这是固定的格式,必须要指定。
username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库
host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
portX 可选的指定端口,如果不填,默认为27017
/database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开admin数据库。
?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

root@iZm5eetszs07500os8erolZ:~# mongo mongodb://127.0.0.1:27017
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Server has startup warnings:
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten]
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten]
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten]
> show databases;
admin   0.000GB
config  0.000GB
local   0.000GB
>

使用shell的方式连接:

root@iZm5eetszs07500os8erolZ:~# mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Server has startup warnings:
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten]
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten]
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten]
> show databases;
admin   0.000GB
config  0.000GB
local   0.000GB
> use admin
switched to db admin
>

命令说明

//进入数据库
mongo

//显示数据库
show databases;

//使用数据库
use admin

6.2 创建用户

首先保证你已经以用户管理员的身份登录admin数据库。然后用use命令切换到目标数据库,同样用db.createUser() 命令来创建用户,其中角色名为“readWrite”,普通的数据库用户角色有两种,read和readWrite。顾名思义,前者只能读取数据不能修改,后者可以读取和修改。

root@iZm5eetszs07500os8erolZ:~# mongo
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Server has startup warnings:
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten]
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2021-07-26T16:03:25.186+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten]
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-07-26T16:03:26.300+0800 I CONTROL  [initandlisten]
> use admin
switched to db admin
> db.createUser({user:"root",pwd:"root123abc",roles:["userAdminAnyDatabase"]})
Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }
> use admin
switched to db admin
> db.auth("root","root123abc")
1
> show users;
{
        "_id" : "admin.root",
        "user" : "root",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}
>

命令说明

//创建root用户
db.createUser({user:"root",pwd:"root123abc",roles:["userAdminAnyDatabase"]})

//root登录 db.auth()方法返回1表示登录成功。
db.auth("root","root123abc")

//查看用户
show users;

6.3 删除用户

>db.system.users.remove({"user" : "test_user"});  删除一个test_user用户

6.4 mongodb创建、删除、插入数据命令使用

root@iZm5eetszs07500os8erolZ:~# mongo  
MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
Server has startup warnings:
2021-07-26T17:22:22.563+0800 I STORAGE  [initandlisten]
2021-07-26T17:22:22.563+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2021-07-26T17:22:22.563+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2021-07-26T17:22:23.721+0800 I CONTROL  [initandlisten]
2021-07-26T17:22:23.721+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-07-26T17:22:23.721+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-07-26T17:22:23.721+0800 I CONTROL  [initandlisten]
> use test     #创建一个test数据库
switched to db test
> show dbs;    #列出所有数据库
admin   0.000GB
config  0.000GB
local   0.000GB

# 但是并没有看到刚才我们创建的test数据库,那是因为test数据库是空的,我们插入一条数据

> db.test.insert({"name":"alanchen"})
WriteResult({ "nInserted" : 1 })
> db.test.find({"name":"alanchen"})     #查询数据
{ "_id" : ObjectId("60fe80e2098d05fbdf907486"), "name" : "alanchen" }
> db.test.findOne()    #查询一条数据
{ "_id" : ObjectId("60fe80e2098d05fbdf907486"), "name" : "alanchen" }

> show dbs;    #test 数据库就显示了
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

> db.dropDatabase();   # 删除数据库
{ "dropped" : "test", "ok" : 1 }

> show dbs;  # test数据库不显示了
admin   0.000GB
config  0.000GB
local   0.000GB
>

七、MongoDB存储引擎

存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引擎(Storage Engine),MongoDB支持的存储引擎有:WiredTiger,MMAPv1和In-Memory。

从MongoDB 3.2版本开始,WiredTiger成为MongDB默认的Storage Engine,用于将数据持久化存储到硬盘文件中,WiredTiger提供文档级别(Document-Level)的并发控制,检查点(CheckPoint),数据压缩和本地数据加密( Native Encryption)等功能。
MongoDB不仅能将数据持久化存储到硬盘文件中,而且还能将数据只保存到内存中;In-Memory存储引擎用于将数据只存储在内存中,只将少量的元数据和诊断日志(Diagnostic)存储到硬盘文件中,由于不需要Disk的IO操作,就能获取索取的数据,In-Memory存储引擎大幅度降低了数据查询的延迟(Latency)。

查看MongoDB的默认存储引擎:

echo "db.serverStatus()"| mongo|grep wiredTiger

命令窗口结果

root@iZm5eetszs07500os8erolZ:~# echo "db.serverStatus()"| mongo|grep wiredTiger
                "name" : "wiredTiger",
        "wiredTiger" : {
root@iZm5eetszs07500os8erolZ:~#

WiredTiger和MMAPv1都用于持久化存储数据,相对而言,WiredTiger比MMAPv1更新,功能更强大。文章来源地址https://www.toymoban.com/news/detail-591404.html

八、MongoDB使用注意事项以及性能优化

  • 使用explain()测试应用程序中的每个查询
  • 避免分散-聚集查询
  • 你的操作应用程序只应从主节点读取
  • 使用MongoDB最新的驱动程序
  • 将记录的所有数据存储在单个文档中
  • 避免使用大文档
  • 避免使用大型索引数组
  • 避免不必要的长字段名称
  • 在考虑低基数字段上的索引时,请谨慎
  • 取消不必要的索引
  • 删除作为其他索引的前缀的索引
  • 使用复合索引而不是索引交集
  • 避免没有留下锚定或生根的正则表达式
  • 使用WiredTiger存储引擎中提供的索引优化(3.0版本之后默认是WiredTiger引擎)
  • 对不同的数据库使用多个设备 - WiredTiger
  • 避免使用ext3文件系统,使用ext4或者xfs文件系统

到了这里,关于如何在Ubuntu上安装MongoDB?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu22.04安装Mongodb7.0

    VMware安装Ubuntu22.04 安装Mongodb社区版 CPU架构X86 Mongodb7.0社区版支持X86_64架构的64位Ubuntu LTS版本 22.04 LTS(“Jammy”) 20.04 LTS(“Focal”) 当你不确定当前Ubuntu版本时 2.1导入包管理系统使用的公钥 终端安装,检查是否安装gnupg和curl,如果显示指令不可用,安装即可 导入MongoDB公共GPG密钥

    2024年02月10日
    浏览(43)
  • MongoDB(一) windows 和 linux 之 Ubuntu 安装

    数据库分类 一、关系型数据库(RDBMS) mysql 、Oracle、DB2、SQL Server 关系数据库中全都是表 二、非关系型数据库(NO SQL) MongoDB、Redis 键值对数据库 文档数据库MongoDB 下载 mongoDB https://www.mongodb.com/try/download/community 主要作用 MongoDB是一个跨平台的,面向文档的数据库,可提供高性

    2024年02月07日
    浏览(39)
  • Ubuntu 18.04 (Bionic) 简单快速的安装mongodb

    按步骤走,不带脑子式安装(注意4.0版本mongodb官方已经不再支持,以下代码中可以修改mongodb版本号安装,目前最新版为6.0,如果懒得改直接用也可以,文章后边第三章第一条代码会直接升级为最新版本mongodb): 1.导入包管理系统使用的公钥 此操作运行结果应为 OK,如果收到指

    2024年02月08日
    浏览(58)
  • MongoDB数据库安装

    MongoDB数据的特点: 面相文档存储的分布式数据库 具有很强的扩展性 支持丰富的查询表达式,很接近于关系性数据库 使用类似于json的结构保存数据,可以轻易的查询到文档中内嵌的对象及数组 首先去官网下载安装包 Download MongoDB Community Server | MongoDB 启动MongoDB数据的服务 可

    2024年02月11日
    浏览(58)
  • ubuntu22.04离线安装jdk、mysql、redis、mongodb、nginx

    ubuntu22.04离线安装jdk、mysql、redis、mongodb、nginx) 1.1 安装包列表 序号 名称 1 jdk-8u181-linux-x64.tar.gz 1.2 安装方式 2.1 安装包列表 序号 名称 1 net-tools_1.60+git20181103.0eebece-1ubuntu5_amd64.deb 2 unzip_6.0-20ubuntu1.1_amd64.deb 3 g++11.3.zip 4 gcc11.3.zip 5 make_4.3-4.1build1_amd64.deb 2.2 安装方式 3.1 安装包列表

    2024年02月09日
    浏览(51)
  • 如何在Ubuntu系统使用Docker搭建MongoDB结合内网穿透实现公网连接

    本文主要介绍如何在Linux Ubuntu系统使用Docker快速部署MongoDB,并结合cpolar内网穿透工具实现公网远程访问本地数据库。 MongoDB服务端可以运行在Linux、Windows、MacOS平台,可以存储比较复杂的数据类型,支持的查询语言非常强大,几乎可以实现类似关系数据库单表查询的绝大部分

    2024年03月26日
    浏览(57)
  • windows 安装 mongodb 数据库

    访问官方的下载地址: https://www.mongodb.com/try/download/community ,然后选择对应的版本进行下载 下载好了之后双击进行安装 1、点击 next 点击下一步 2、勾选接受协议,点击 next 3、第三页有两个选项,一个是 Complete 完整安装,还有一个是 Custom 自定义安装。在这里选择自定义安装

    2024年02月15日
    浏览(55)
  • 使用 Docker 安装 MongoDB 数据库

    by emanjusaka from https://www.emanjusaka.top/2024/01/docker-create-mongo-db 彼岸花开可奈何 本文欢迎分享与聚合,全文转载请留下原文地址。 -d 后台运行 --restart=always 自动重新启动 --privileged 允许容器以特权模式运行 -v /opt/doc/data:/data/db 数据挂载 -p 27017:27017 端口挂载 --auth 启用了身份验证

    2024年01月18日
    浏览(48)
  • Mac环境下安装MongoDB数据库

    首先,从MongoDB官网下载自己想要使用的版本。 解压缩下载的压缩包重命名为mongodb,将mongodb文件夹复制到/usr/local目录下。 打开.zshrc 文件,若没有此文件可以创建一个 把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中 编辑完成后保存并退出,然后使用sourc

    2024年02月16日
    浏览(51)
  • Windows环境下安装MongoDB数据库

    菜鸟教程:MongoDB 概念解析 ​​​ 要想直接操作MongoDB数据库,需要在系统中安装它。这里以Windows系统为例,讲解如何从官网中下载MongoDB,井且安装和配置到电脑上,具体步骤如下: 1、打开MongoDB下载网站(按住control并单击),进入到 官方网站(如图所示): 2、选择下载的版

    2024年02月01日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包