物联网架构实例—Ubuntu 安装MongoDB及完全卸载

news2024/12/23 19:25:54

1.安装

1.1.导入公钥

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

如果收到指示gnupg未安装的错误,则可以先执行:

sudo apt-get install gnupg

然后再执行一次导入公钥命令:

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

1.2.为MongoDB创建一个列表文件

执行下面命令:

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

1.3.更新apt-get源

sudo apt-get update

1.4.安装MongoDB软件包

sudo apt-get install -y mongodb-org

如果不能正常安装或者报找不到包,提示:E: Unable to locate package mongodb-org

可以尝试更新一下apt-key

apt-key用于管理apt用于验证软件包的密钥列表,已经使用这些密钥验证的软件包将被视为可信。

执行命令:

sudo apt-key update

1.5.固定版本,防止意外升级

apt-get将在更新的版本可用时升级软件包。

若要防止意外升级,可以通过以下命令将包固定在当前安装的版本:

echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

到此安装完毕。

1.6.查看安装的版本

mongo -version

1.7.启动MongoDB

注意:安装完后MongoDB并不会自动启动,需要通过如下命令启动MongoDB

sudo systemctl start mongod

如果在启动时收到类似于以下内容的错误: mongod:Failed to start mongod.service: Unit mongod.service not found.

首先运行以下命令:

sudo systemctl daemon-reload

然后再次运行上面的启动命令:

sudo systemctl start mongod

1.8.查看MongoDB运行状态

sudo systemctl status mongod

1.9.MongoDB常用命令

sudo systemctl start mongod #启动
sudo systemctl stop mongod #停止
sudo systemctl restart mongod #重启

2.创建管理员用户

执行下面命令:

sudo mongo

进入MongoDB的命令行交互模式

在此模式下运行如下命令创建一个管理员账户:admin,密码:123456:

use admin 
db.createUser({user:'admin',pwd:'123456',roles:[{role:'root',db:'admin'}]})

3.配置外网访问

MongoDB 默认没有开启外网访问,需要进行配置修改。

修改配置文件,执行命令:

sudo vim /etc/mongod.conf

将文件里面的bindIp改为0.0.0.0,并添加登录鉴权认证

#将bindIp改为0.0.0.0
net:
  port: 27017
  bindIp: 0.0.0.0

#加入身份鉴权:
security:
  authorization: enabled

然后重新启动MongoDB服务:

sudo service mongod restart

此时我们可以使用MongoDB Compass登录可视化查看。此工具在MongoDB官网就可以下载。

下载地址:https://www.mongodb.com/try/download/compass

通过刚刚创建的管理员账户连接到我们刚刚安装的MongoDB,此时会有默认的三个系统库。

4.创建库以及库对应的账户

4.1.创建库

通过mongo命令登录,执行命令:

mongo

因为上述开启了验证,所以这里需要验证管理员账户信息。

因为我们刚刚创建的管理员账户是admin,密码:123456

use admin
  db.auth("admin","123456")

1:代表验证成功了

查看已存在的数据库,执行命令:

show dbs

因为还未创建过自己的数据库,所以这里还是默认的三个库。

创建数据库

语法:use database_name

例如:我们需要创建一个叫terminal_data的数据库:

use terminal_data

4.2.为新库创建管理员账户

为我们这个库增加一个单独的账户进行管理:

db.createUser({
    user: 'username',
    pwd: 'password',
    roles: [ { role: "readWrite", db: "terminal_data" } ]
})

然后执行:

show users

就可以查看到我们刚刚创建的账户信息了

如果这时候我们执行show dbs,不会显示我们刚刚创建的数据库

新创建的数据库列表中是不存在的。要显示的数据库,需要把它插入至少一个文件

比如执行插入命令:

db.test.insert({ "test":"first file"})

再执行show dbs就可以看到刚刚创建的数据库了。

这时候我们使用MongoDB Compass查看一下。

5.设置开机启动

执行命令:

sudo systemctl enable mongod.service

6.完全卸载

6.1.停止 mongodb服务

sudo service mongod stop

6.2.执行卸载命令

sudo apt-get remove mongodb

6.3.移除相关包

执行如下命令:

sudo apt-get purge mongodb-org*
sudo apt-get purge mongodb
sudo apt-get autoremove
sudo apt-get autoclean

6.4.移除相关目录

执行如下命令:

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

6.5.查看系统是否有残留的文件或目录

依次执行如下命令:

whereis mongo
whereis mongodb
whereis mongod
which mongo
which mongodb
which mongod

如果执行命令的过程发现有残留文件,则可以执行 rm -r 命令将其移除。

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

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

相关文章

React(coderwhy)- 08(Hooks)

认识和体验Hooks 为什么需要Hook? ◼ Hook 是 React 16.8 的新增特性,它可以让我们在不编写class的情况下使用state以及其他的React特性(比如生命周期)。 ◼ 我们先来思考一下class组件相对于函数式组件有什么优势?比较常见的是下…

Exynos_4412——IIC总线概述

目录 一、IIC总线概述 1.1IIC总线简介 1.2IIC总线通信过程 1.3IIC总线寻址方式 二、IIC总线信号实现 2.1起始信号与停止信号 2.2字节传送与应答 2.3同步信号 三、典型IIC时序 四、小作业 一、IIC总线概述 1.1IIC总线简介 IIC总线IIC总线是Philips公司在八十年代初推…

[VP]河南第十三届ICPC大学生程序竞赛 L.手动计算

前言 传送门 : 题意 : 给定两个椭圆 的方程 , 要求 求出椭圆并集的面积之和 思路 : 本题很显然是积分 或者 计算几何的问题 对于积分的做法, 无非就是根据积分公式求出第一象限的面积 之后拓展到后面四个象限。(奈何我懒, 连两个椭圆的焦点都不想求更别提后面的积分公式了)…

Git遇到冲突?解决也太简单了

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store git冲突是开发过程中很难避免的,对很多git初学者来说也是比较有障碍和门槛的一部分知识。 我认为要想彻底理解一个问题,首先要清楚这个问题是怎么产生的,然后才可以…

大数据NiFi(八):NiFi集群页面的组件工具栏介绍

NiFi集群页面的组件工具栏介绍 一、处理器(Processor)

WebLogic-执行队列

一,Tuning the Application Server 二,执行队列 Using Work Managers to Optimize Scheduled WorkThis chapter describes how WebLogic Server 12.1.3 lets you configure how your application prioritizes the execution of its work using a Work Ma…

java实现pdf转word,解决个别排版错乱问题

项目中要实现客户上传完pdf,上传成功后直接就转成word格式的,之前网上一些免费的转出来的word大致还行,但是有些排版就错乱了,如下图:下面这个是用java改造后的,效果如下,排版整齐,和pdf中的格式…

[总结] DDPM Diffusion模型各阶段训练和采样过程方案细节和代码逻辑汇总

DDPM Diffusion模型训练和采样过程细节汇总算法回顾框架理解DDPM训练过程采样过程Text-guiled DDPM训练过程采样过程Null-text guiled DDPM训练过程采样过程项目代码训练过程![在这里插入图片描述](https://img-blog.csdnimg.cn/f6213f8e584b4142b0c5a016cd23b63a.png)采样过程…

c++ std::funciona代替函数指针——结合std::bind

一、介绍std::function std::function是函数模板类&#xff08;是一个类&#xff09;。包含在#include <functional> 中。以前没有这个类的时候&#xff0c;我们在想定义一个回调函数指针&#xff0c;非常的麻烦。我们通常这样的定义&#xff1a; typedef void&#x…

智能小便冲洗器行业市场运行态势及未来发展潜力分析

2023-2029年中国智能小便冲洗器行业市场运行态势及未来发展潜力报告报告编号&#xff1a;1690632免费目录下载&#xff1a;http://www.cninfo360.com/yjbg/jdhy/cwjd/20230105/1690632.html本报告著作权归博研咨询所有&#xff0c;未经书面许可&#xff0c;任何组织和个人不得以…

Python人工智能之人脸识别face_recognition安装

face_recognition 模块使用系统环境搭建 系统环境 Ubuntu / deepin操作系统Python 3.6pycharm 开发工具 开发环境配置&#xff0c;安装各种系统包 人脸检测基于dlib&#xff0c;dlib依赖Boost和cmake 在windows中如果要使用dlib还是比较麻烦的&#xff0c;如果想省时间可以在…

【关于Linux中----文件系统、inode、软硬链接和动静态库】

文章目录一、理解文件系统和inode二、硬链接与软链接三、动静态库3.1、静态库与动态库3.2、生成静态库3.3、生成动态库一、理解文件系统和inode 在我前几篇博客中谈到的有关文件的话题&#xff0c;它们统一指的都是打开的文件&#xff0c;那么在这里&#xff0c;我要谈一下没有…

Java基础之《netty(22)—netty编码解码机制》

一、编码和解码的基本介绍 1、编写网络应用程序时&#xff0c;因为数据在网络中传输的都是二进制字节码数据&#xff0c;在发数据时就需要编码&#xff0c;接收数据时就需要解码 2、codec&#xff08;编解码器&#xff09;的组成部分有两个&#xff1a;decoder&#xff08;解…

看小红书排行榜,解构热点背后的出圈密码

导语&#xff1a; 随着消费升级&#xff0c;新中式茶饮也悄然“起风了”&#xff0c;传统茶从老一辈人的茶杯里&#xff0c;通过创新再造&#xff0c;成为年轻人的社交“新”头好&#xff0c;其衍生的“围炉煮茶”更成为小红书平台的热门话题。高流量曝光之路背后&#xff0c;…

一个精美的登录界面原来是这样做的

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏 玩归玩闹归闹&#xff0c;别拿java开玩笑 —————————————————— ⭐相关文章⭐ -通过窗口看…

隐形纱窗行业市场经营管理及发展趋势研究分析

2023-2029年中国隐形纱窗行业市场经营管理及发展趋势研究报告报告编号&#xff1a;1690619本报告著作权归博研咨询所有&#xff0c;未经书面许可&#xff0c;任何组织和个人不得以任何形式复制、传播或输出中华人民共和国境外。任何未经授权使用本报告的相关商业行为都将违反《…

【操作系统】计算机内存管理

1.内存管理目标rom-ram &#xff08;1&#xff09;为啥要做内存管理 计算机不可能所以用户进程和系统所需要的全部程序和数据放入主存&#xff0c;所以操作系统必须对内存空间进行合理有效的分配内存管理功能 内存分配回收&#xff1a;主存储器&#xff08;物理内存&#xff…

UOS系统启动盘制作

UOS系统启动盘制作一、统信启动盘制作工具1、UOS系统1&#xff09;在启动器打开启动盘制作工具![在这里插入图片描述](https://img-blog.csdnimg.cn/d51bf22e25a846cdb99f7f6317e9447f.png)2&#xff09;选择镜像3&#xff09;选择优盘并格式化4&#xff09;开始制作5&#xff…

第06章 面向对象编程(基础部分oop)

1、单独用变量来解决&#xff1a;不利于数据的管理, 把猫的三个属性拆开了。 2、使用数组的方式解决&#xff1a; 数据类型体现不出来&#xff0c;由于数组中的类型是一致的&#xff0c;所有不能体现出不同的数据类型。 只能通过下标的方式获取信息&#xff0c;这样会造成变量…

sql练习题3

学生表练习 1、查询所有的课程的名称以及对应的任课老师姓名 select course.cname,teacher.tname from course inner join teacher on course.teacher_id teacher.tid;2、查询学生表中男女生各有多少人 select gender as 性别,count(gender) as 个数 from student group b…