How to install mongodb 7.0 to Ubuntu 22.04

How to install mongodb 7.0 to Ubuntu 22.04

  • 1、安装
  • 1.1、添加gpg
    • 1.2、添加apt源
    • 1.3、更新
    • 1.4、安装
  • 2、管理
    • 2.1、服务管理
      • 2.1.1、查看服务状态
      • 2.1.2、启动服务
      • 2.1.3、 设置服务为开机启动
      • 2.1.4、取消服务开机启动
      • 2.1.5、关闭服务
      • 2.1.6、服务重启
    • 2.2、mongosh
      • 2.2.1、进入mongosh
      • 2.2.2、创建数据库
      • 2.2.3、数据库用户
        • 2.2.3.1、查看数据库用户
        • 2.2.3.2、创建数据库用户
        • 2.2.3.3、删除数据库用户
        • 2.2.3.4、创建数据库管理员用户
      • 2.2.4、用管理账号管理mongodb
        • 2.2.4.1、添加配置项
        • 2.2.4.2、基于账号连接

1、安装

1.1、添加gpg

curl -fsSL https://pgp.mongodb.com/server-7.0.asc |  sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor

1.2、添加apt源

echo "deb [ arch=amd64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

1.3、更新

apt update

1.4、安装

apt install -y mongodb-org 

2、管理

2.1、服务管理

2.1.1、查看服务状态

安装完成以后,服务是否启动,我们是不知道的,这个时候怎么查看呢,一般来说,mongodb安装完成以后,都会安装成系统服务。通常来说,对于系统服务,我们可以借助以下命令来查看服务是否启动。

systemctl status mongod.service

这里,我们来检测一下:

lwk@qwfys:~$ sudo systemctl status mongod.service 
○ mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: https://docs.mongodb.org/manualOct 21 00:16:33 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 00:16:33 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 00:16:33 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 00:16:33 qwfys systemd[1]: mongod.service: Consumed 4.804s CPU time.
Oct 21 00:16:33 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 00:16:33 qwfys mongod[6093]: {"t":{"$date":"2023-10-20T16:16:33.931Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
Oct 21 10:39:19 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 10:39:21 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Consumed 37.350s CPU time.
lwk@qwfys:~$ 

这里,我们看到服务没有启动。

2.1.2、启动服务

我们启动一下。

lwk@qwfys:~$ sudo systemctl start mongod.service 
lwk@qwfys:~$ sudo systemctl status mongod.service 
● mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)Active: active (running) since Sat 2023-10-21 10:44:56 CST; 8s agoDocs: https://docs.mongodb.org/manualMain PID: 8924 (mongod)Memory: 169.4MCPU: 762msCGroup: /system.slice/mongod.service└─8924 /usr/bin/mongod --config /etc/mongod.confOct 21 10:44:56 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:44:57 qwfys mongod[8924]: {"t":{"$date":"2023-10-21T02:44:57.041Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
lwk@qwfys:~$ 

这里,我们看到,服务已经启动起来了。

2.1.3、 设置服务为开机启动

通常情况下,对于服务器程序,我可以将其调协为开机启动。

lwk@qwfys:~$ sudo systemctl enable mongod.service 
Created symlink /etc/systemd/system/multi-user.target.wants/mongod.service → /lib/systemd/system/mongod.service.
lwk@qwfys:~$ 

2.1.4、取消服务开机启动

有的时候,我们又不需要让服务开机启动,这个要求是合理的,具体如下:

lwk@qwfys:~$ sudo systemctl disable mongod.service 
Removed /etc/systemd/system/multi-user.target.wants/mongod.service.
lwk@qwfys:~$ 

2.1.5、关闭服务

如果希望关闭服务,可以执行以下命令:

lwk@qwfys:~$ sudo systemctl stop mongod.service 
lwk@qwfys:~$ sudo systemctl status mongod.service 
○ mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: https://docs.mongodb.org/manualOct 21 10:39:19 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 10:39:21 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 10:39:21 qwfys systemd[1]: mongod.service: Consumed 37.350s CPU time.
Oct 21 10:44:56 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:44:57 qwfys mongod[8924]: {"t":{"$date":"2023-10-21T02:44:57.041Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
Oct 21 10:53:39 qwfys systemd[1]: Stopping MongoDB Database Server...
Oct 21 10:53:39 qwfys systemd[1]: mongod.service: Deactivated successfully.
Oct 21 10:53:39 qwfys systemd[1]: Stopped MongoDB Database Server.
Oct 21 10:53:39 qwfys systemd[1]: mongod.service: Consumed 4.566s CPU time.
lwk@qwfys:~$

2.1.6、服务重启

如果需要重启服务,可以用以下命令:

lwk@qwfys:~$ sudo systemctl status mongod.service 
● mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2023-10-21 10:56:42 CST; 8s agoDocs: https://docs.mongodb.org/manualMain PID: 9271 (mongod)Memory: 169.5MCPU: 787msCGroup: /system.slice/mongod.service└─9271 /usr/bin/mongod --config /etc/mongod.confOct 21 10:56:42 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:56:42 qwfys mongod[9271]: {"t":{"$date":"2023-10-21T02:56:42.485Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
lwk@qwfys:~$ sudo systemctl restart mongod.service 
lwk@qwfys:~$ sudo systemctl status mongod.service 
● mongod.service - MongoDB Database ServerLoaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)Active: active (running) since Sat 2023-10-21 10:57:21 CST; 2s agoDocs: https://docs.mongodb.org/manualMain PID: 9326 (mongod)Memory: 169.3MCPU: 717msCGroup: /system.slice/mongod.service└─9326 /usr/bin/mongod --config /etc/mongod.confOct 21 10:57:21 qwfys systemd[1]: Started MongoDB Database Server.
Oct 21 10:57:21 qwfys mongod[9326]: {"t":{"$date":"2023-10-21T02:57:21.090Z"},"s":"I",  "c":"CONTROL",  "id":7484500, "ctx":"main","msg":"Environment variable MONGODB_CONFIG_OVERRIDE_NOFORK>
lwk@qwfys:~$ 

2.2、mongosh

这里,我们借助mongosh命令来完成mongodb的相关管理工作。

2.2.1、进入mongosh

lwk@qwfys:~$ mongosh
Current Mongosh Log ID:	653297d8d2647c0396c5de9d
Connecting to:		mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
Using MongoDB:		7.0.2
Using Mongosh:		2.0.2For mongosh info see: https://docs.mongodb.com/mongodb-shell/To help improve our products, anonymous usage data is collected and sent to MongoDB periodically (https://www.mongodb.com/legal/privacy-policy).
You can opt-out by running the disableTelemetry() command.------The server generated these startup warnings when booting2023-10-20T22:09:01.515+08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem2023-10-20T22:09:02.223+08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted2023-10-20T22:09:02.224+08:00: vm.max_map_count is too low
------test> show dbs
admin   40.00 KiB
config  60.00 KiB
local   72.00 KiB
test>

这里,我们可以看到,系统安装成功以后,会自带三个库,分别是test、admin、local。

2.2.2、创建数据库

在mongosh中,如果要我们借助命令use可以完成数据库的创建与切换。下面,我们创建一个名称为emei的库。

test> use emei
switched to db emei
emei>

2.2.3、数据库用户

2.2.3.1、查看数据库用户

可以借助如下命令查看当前数据库有哪些用户。

emei> db.getUsers();
{ users: [], ok: 1 }
emei>

这里,我们看到,没有一个用户。

2.2.3.2、创建数据库用户

接下来,我们创建两个用户,其中一个用户名为admin,密码为Gah6kuP7ohfio4,另一个用户,用户名为admix,密码为Gah6kuP7ohfio4,并为它赋于读写权限。

emei> db.createUser(
...   {
...     user: "admin",
...     pwd: "Gah6kuP7ohfio4",
...     roles: [ { role: "readWrite", db: "emei" } ]
...   }
... )
{ ok: 1 }
emei> db.createUser(
...   {
...     user: "admix",
...     pwd: "Gah6kuP7ohfio4",
...     roles: [ { role: "readWrite", db: "emei" } ]
...   }
... )
{ ok: 1 }
emei> db.getUsers();
{users: [{_id: 'emei.admin',userId: new UUID("fedb3cb0-7850-4904-ba7a-5e182cd1e9c9"),user: 'admin',db: 'emei',roles: [ { role: 'readWrite', db: 'emei' } ],mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]},{_id: 'emei.admix',userId: new UUID("910386e6-81e2-4c5b-8eb0-6b273e5319a8"),user: 'admix',db: 'emei',roles: [ { role: 'readWrite', db: 'emei' } ],mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]}],ok: 1
}
emei> 

我们看到,用户已经创建成功。

2.2.3.3、删除数据库用户

这里,我们删除用户名为admix的用户。

emei> db.dropUser("admix", {w: "majority", wtimeout: 4000});
{ ok: 1 }
emei> db.getUsers();
{users: [{_id: 'emei.admin',userId: new UUID("fedb3cb0-7850-4904-ba7a-5e182cd1e9c9"),user: 'admin',db: 'emei',roles: [ { role: 'readWrite', db: 'emei' } ],mechanisms: [ 'SCRAM-SHA-1', 'SCRAM-SHA-256' ]}],ok: 1
}
emei>
2.2.3.4、创建数据库管理员用户
emei> use admin
switched to db admin
admin> db.createUser(
...   {
...     user: "admin",
...     pwd: passwordPrompt(),
...     roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
...  }
... )
Enter password
Gah6kuP7ohfio4
**************{ ok: 1 }
admin> exit
lwk@qwfys:~$

我们可以看到,管理员用户已经创建完成。

2.2.4、用管理账号管理mongodb

2.2.4.1、添加配置项

为了使用账号登录到mongodb数据库,这个时候,我们需要在mongodb数据库配置文件中添加启用权限配置项:

sudo tee -a /etc/mongod.conf <<-'EOF'security:authorization: enabledEOF

添加完成以后,要使配置生效,我们还需要重启mongodb服务。

2.2.4.2、基于账号连接

当然我们需要基于账号连接到mongodb数据库服务端的时候,需要采用如下的方式:

lwk@qwfys:~$ mongosh --username=admin --password=Gah6kuP7ohfio4
Current Mongosh Log ID:	6532a6ae0cdd8066876fefa0
Connecting to:		mongodb://<credentials>@127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.0.2
Using MongoDB:		7.0.2
Using Mongosh:		2.0.2For mongosh info see: https://docs.mongodb.com/mongodb-shell/test> show dbs;
admin   180.00 KiB
config   72.00 KiB
local    72.00 KiB
test> 

这里,我们看到,服务已经连接成功,而且可以正常使用了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/116861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“深入探讨Java JUC中的ReentrantLock锁:实现多线程同步与并发控制“

简介 1、从Java5开始&#xff0c;Java提供了一种功能更强大的线程同步机制——通过显式定义同步锁对象来实现同步&#xff0c;在这种机制下&#xff0c;同步锁由Lock对象充当。 2、Lock 提供了比synchronized方法和synchronized代码块更广泛的锁定操作&#xff0c;Lock允许实…

arcgis js api FeatureLayer加载时返回数据带*问题

接着这一问题衍生出来的问题 arcgis的MapServer服务查询出来的结果geometry坐标点带*的问题-CSDN博客 个人感觉像是server版本的问题&#xff0c;具体不清楚&#xff0c;pg数据库里面的shape点集合坐标点的精度是8&#xff0c;但是server服务查出来的默认都十几位。所以存在一…

c_指针

文章目录 *(p1)1表示第 1 行第 1 个元素的地址。如何理解呢&#xff1f;下标运算符的规则括号 int a; // 1.一个整数 int *a; // 2.一个指向整数的指针 int **a; // 3.一个指向指针的指针, 它所指向的指针又指向一个整数型数据 ;一个指向 …

用Python绘制简单曲线的几个方法

画曲线的基本方法 1.用圆的一部分来画曲线&#xff1a; circle(半径&#xff0c;度数) 比如说想画一个半径为50的半圆的曲线&#xff0c;就可以用circle(50,180)来表示 如果想截取一个半径为100的圆中110的部分&#xff0c;就可以用circle(100,110)来表示 若要更改方向&am…

使用CPR库和Python编写程序

以下是一个使用CPR库和Python编写的爬虫程序&#xff0c;用于爬取。此程序使用了proxy的代码。 import requests from cpr import CPR ​ def get_proxy():url "https://www.duoip.cn/get_proxy"headers {"User-Agent": "Mozilla/5.0 (Windows NT …

C语言可变参数函数及其实现

概述 本文讨论C语言中的可变参数函数&#xff0c;特别关注printf和scanf&#xff0c;它们允许根据需要确定参数的个数。这篇文章还介绍了可变参数函数的实现细节和相关宏 1. 可变参数函数的概念 C语言引入了可变参数函数的概念&#xff0c;允许函数的参数个数根据需要确定。…

如何用.bat文件直接安装jar包

大家应该都知道一个maven引入jar包&#xff0c;如果直接把jar包放到目录&#xff0c;这样是没用的&#xff0c;引入还是会失败 这里我们可以创建一个.bat的windows系统文件&#xff0c;写入pom.xml对应的groupid&#xff0c;artifactId&#xff0c;version pom.xml中进入jar包…

RDB.js:适用于 Node.js 和 Typescript 的终极对象关系映射器

RDB.js 是适用于 Node.js 和 Typescript 的终极对象关系映射器&#xff0c;可与 Postgres、MS SQL、MySQL、Sybase SAP 和 SQLite 等流行数据库无缝集成。无论您是使用 TypeScript 还是 JavaScript&#xff08;包括 CommonJS 和 ECMAScript&#xff09;构建应用程序&#xff0c…

Ceres 使用笔记

文章目录 Part.I IntroductionChap.I 预备知识Chap.II 概念理解 Part.II 简单使用Chap.I Ceres 中主要函数简介Chap.II 一个简单的实例 Reference Part.I Introduction Ceres 1 是由 Google 开发的开源 C 通用非线性优化库&#xff0c;与 g2o 并列为目前视觉 SLAM 中应用最广泛…

使用 conda 在 Ubuntu 16.04 上安装 Python 3.9 的步骤:和 VSCode配置

一、使用conda在 Ubuntu 16.04 上安装 Python 3.9 的步骤: 当然可以,conda 是一个非常强大的包管理器,它可以方便地管理不同版本的 Python 和各种库包。以下是使用 conda 在 Ubuntu 16.04 上安装 Python 3.9 的步骤: 1. 安装 Miniconda Miniconda 是 Anaconda 的轻量级版…

k8s-----3、kubernetes集群部署(kubeadm部署)

集群部署 1、kubeadm流程&#xff08;重新配置&#xff09;1.1 安装要求1.2 准备环境 1.3. 所有节点安装Docker/kubeadm/kubelet1.3.1 安装Docker1.3.2 添加阿里云YUM软件源1.3.3 安装kubeadm&#xff0c;kubelet和kubectl 1.4 部署Kubernetes Master1.5. 加入Kubernetes Node1…

springboot+vue开发的视频弹幕网站动漫网站

springbootvue开发的视频弹幕网站动漫网站 演示视频 https://www.bilibili.com/video/BV1MC4y137Qk/?share_sourcecopy_web&vd_source11344bb73ef9b33550b8202d07ae139b 功能&#xff1a; 前台&#xff1a; 首页&#xff08;猜你喜欢视频推荐&#xff09;、轮播图、分类…

28、Flink 的SQL之DROP 、ALTER 、INSERT 、ANALYZE 语句

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

cookie过大导致request 400 错误研究

问&#xff1a;get请求太长报400的错误&#xff0c;如何解决&#xff1f;生成系统中经常偶现此问题 问&#xff1a;get请求URL的长度是谁限制的&#xff1f; 问&#xff1a;每一个cookie的value的大小还是同域下cookie的个数做的限制&#xff1f; 现象&#xff1a;出现 400 Ba…

【Python · PyTorch】数据基础

数据基础 1. 数据操作1.1 入门1.2 运算符1.3 广播机制1.4 索引和切片1.5 节省内存1.6 转化为其他Python对象 2. 数据预处理2.1 读取数据集2.2 处理缺失值2.3 转换为张量格式 本文介绍了PyTorch数据基础&#xff0c;Python版本3.9.0&#xff0c;代码于Jupyter Lab中运行&#xf…

人工智能之深度学习

1. 引言 时至今日&#xff0c;人们常用的计算机程序几乎都是软件开发人员从零编写的。 比如&#xff0c;现在开发人员要编写一个程序来管理网上商城。 经过思考&#xff0c;开发人员可能提出如下一个解决方案&#xff1a; 首先&#xff0c;用户通过Web浏览器&#xff08;或移动…

Elasticsearch的聚集统计,可以进行各种统计分析

说明&#xff1a; Elasticsearch不仅是一个大数据搜索引擎&#xff0c;也是一个大数据分析引擎。它的聚集(aggregation)统计的REST端点可用于实现与统计分析有关的功能。Elasticsearch提供的聚集分为三大类。 度量聚集(Metric aggregation)&#xff1a;度量聚集可以用于计算搜…

MyBatisPlus的使用【详细】

目录 Mybatis MybatisPlus特性 MybatisPlus的使用 常见注解 TableName TableId TableField MP常见配置 条件查询器Wrapper QueryWrapper UpdateWrapper LambdaQueryWrapper 自定义SQL Service接口 批量添加数据 MP的代码生成 MP静态工具 MP扩展功能之逻辑删除…

防火墙实验

防火墙 ping&#xff08;网络测试工具&#xff0c;测试主机之间的可达性&#xff09;原理&#xff1a; 发送一些小的网络数据包&#xff08;ICMP数据包&#xff09;到目标主机&#xff0c;并等待目标主机返回一个响应&#xff08;通常是回显应答 Echo Reply&#xff09;。 ss…

C++栈、队列、优先级队列模拟+仿函数

目录 一、栈的模拟和deque容器 1.deque 1.1deque结构 1.2deque优缺点 2.stack模拟 二、队列的模拟 三、priority_queue优先级队列 1.优先级队列模拟 2.添加仿函数 一、栈的模拟和deque容器 在之前&#xff0c;我们学过了C语言版本的栈&#xff0c;可以看这篇文章 栈和…