数据库应用:Ubuntu 20.04 安装MongoDB

目录

一、理论

1.MongoDB

二、实验

1.Ubuntu 20.04 安装MongoDB

三、问题

1.Ubuntu Linux的apt 包管理器更新安装软件报错

2.Ubuntu20.04安装vim报错

3.Ubuntu20.04如何更换阿里源

4.Ubuntu22.04如何更换阿里源


一、理论

1.MongoDB

(1)概念

MongoDB 是由C++语言编写并基于分布式文件存储的开源数据库,属于NOSQL 。

MongoDB 是一款介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的NOSQL数据库。它面向文档存储,而且安装和操作起来都比较简单和容易,而且它支持各种流行编程语言进行操作,如Python,Node.js,Java,C++,PHP,C#等。

目前在大数据、内容管理、持续交付、移动应用、社交应用、用户数据管理、数据中心等领域皆有广泛被使用。

(2)MongoDB相对于RDBMS的优势

1)   无固定结构 。2)  数据结构由键值(key=>value)对组成。MongoDB 的文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组,单个对象的结构是清晰的。3)   没有复杂的表连接。不需要维护表与表之间的内在关联关系。4)   查询功能强大。MongoDB的查询功能几乎与SQL一样强大,使用基于文档的查询语言,可以对文档进行动态查询。5)   易于调优和扩展。具备高性能、高可用性及可伸缩性等特性6)   应用程序对象与数据库对象天然对应。7)   可以基于内存存储或者硬盘文件存储,提供丰富的查询操作和索引支持,也有事务操作,可以更快地更稳定的访问数据。(mongoDB4.0以后才真正支持所谓的多文档事务操作)

(3)术语对比

表1 SQL与MongoDB对比

SQLMongodb
库(database)库(database)
表(Table)集合(Collection)
行/记录(Row)文档(Document)
列/字段(Col)字段/键/域(Field)
主键(Primary Key)对象ID(ObjectId)
索引(Index)索引(Index)

(4)基本操作

db.help()                    help on db methods   查看操作数据的方法db.mycoll.help()             help on collection methods  查看集合的操作方法sh.help()                    sharding helpers  查看分片集share的帮助信息rs.help()                    replica set helpers 查看复制集的帮助信息help admin                   administrative help 查看管理的操作帮助信息help connect                 connecting to a db helphelp keys                    key shortcutshelp misc                    misc things to knowhelp mr                      mapreduceshow dbs                     show database names  查看当前系统所有的数据库show collections             show collections in current database 查看当前数据库所有的数据集合show users                   show users in current database  查看当前数据库中所有的管理员用户show profile                 show most recent system.profile entries with time >= 1msshow logs                    show the accessible logger names 查看全部日志show log [name]              prints out the last segment of log in memory, 'global' is default                          查看指定日志信息use <db_name>                set current database   切换操作的数据库db.mycoll.find()             list objects in collection mycoll  列出当前指定集合下的所有文档db.mycoll.find( { a : 1 } )  list objects in mycoll where a == 1 按条件查询指定集合下所有文档it                           result of the last line evaluated; use to further iterate查看更多的查询结果,相当于下一页DBQuery.shellBatchSize = x   set default number of items to display on shell修改返回结果数据的单页显示数量,默认20条exit                         quit the mongo shell  退出终端

二、实验

1.Ubuntu 20.04 安装MongoDB

(1)安装依赖包

sudo apt-get install -y libcurl4 openssl

(2)关闭和卸载原有的mongodb

sudo systemctl stop mongod
sudo apt-get purge mongodb*
sudo apt-get auto-remove
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

(3)导入包管理系统使用的公钥

# 导入包管理系统使用的公钥
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
# 如果命令执行结果没有显示OK,则执行此命令在把上一句重新执行:sudo apt-get install gnupg

(4)注册mongodb源

echo "deb https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
# echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list

(5)更新源

sudo apt-get update

(6)安装mongodb

sudo apt-get install -y mongodb-org

(7)创建数据存储目录

sudo mkdir -p /data/db

(8)启动和关闭MongoDB

# 重新加载配置,并启动mongodb
sudo systemctl daemon-reload
sudo systemctl start mongod# 查看运行状态
sudo systemctl status mongod
# 如果mongodb状态为stop,则运行 sudo systemctl enable mongod# 停止mongodb
sudo systemctl stop mongod# 重启mongodb
sudo systemctl restart mongod

(9)进入交互终端

root@node1:/etc/apt# mongo
MongoDB shell version v4.4.25
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("3a390cc8-34b9-4160-bfe5-ddcd5149a056") }
MongoDB server version: 4.4.25
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, seehttps://docs.mongodb.com/
Questions? Try the MongoDB Developer Community Forumshttps://community.mongodb.com
---
The server generated these startup warnings when booting: # 警告:强烈建议使用XFS文件系统,并使用WiredTiger存储引擎。# 解释:因为当前ubuntu使用的是ext4文件系统,mongodb官方建议使用XFS文件系统功能更能发挥mongodb的性能,忽略不管2023-11-26T18:37:17.202-08:00: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine. See http://dochub.mongodb.org/core/prodnotes-filesystem# 警告:当前mongodb没有为数据库启用访问控制。对数据和配置的读写访问是不受限制的。# 解释:后面会创建数据库用户采用密码登陆的。暂时不用管2023-11-26T18:37:17.594-08:00: Access control is not enabled for the database. Read and write access to data and configuration is unrestricted
---

(10)查看默认库

> db
test
> show db;
uncaught exception: Error: don't know how to show [db] :
shellHelper.show@src/mongo/shell/utils.js:1145:11
shellHelper@src/mongo/shell/utils.js:819:15
@(shellhelp2):1:1
> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
> 

(11)退出交互终端

exit
# quit()

(12)查看版本

mongo --version
# 或者终端内部使用 version()

三、问题

1.Ubuntu Linux的apt 包管理器更新安装软件报错

(1)报错

Could not get lock /var/lib/dpkg/lock-frontend

(2)原因分析

因为某些程序在系统后台进行着某些 apt 操作,因此锁定了 apt 数据库,所以暂时不能进行 apt 操作。就像windows上某程序或文件被另一进程所占有时,其他进程也无法访问一样,这是符合设计逻辑的。

(3)解决方法

首先找出是哪个进程占用了锁文件 /var/lib/dpkg/lock

root@node1:~# sudo lsof /var/lib/dpkg/lock
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfOutput information may be incomplete.
COMMAND      PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
unattende 163898 root   11uW  REG    8,5        0 787519 /var/lib/dpkg/l

接着kill 掉这个进程

root@node1:~# sudo kill -9 163898

然后删除锁文件

root@node1:~# sudo rm /var/lib/dpkg/lock

最后运行以下命令

root@node1:~# sudo dpkg --configure -a

2.Ubuntu20.04安装vim报错

(1)报错

(2)原因分析

vim : 依赖: vim-common (= 2:8.0.1453-1ubuntu1) 但是 2:8.1.2269-1ubuntu5.7 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

(3)解决方法

apt-get purge vim-common
apt install vim

3.Ubuntu20.04如何更换阿里源

(1)查看系统信息

root@master1:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.3 LTS
Release:	20.04
Codename:	focal

(2)先备份下原始源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

(3)修改文件   

sudo vim  /etc/apt/source.list

清除原有的,替换以下源

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse

(4)保存下,更新软件库

sudo  apt update

(5)升级软件

sudo  apt upgrade

4.Ubuntu22.04如何更换阿里源

(1)查看系统信息

root@ubuntu2204:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04 LTS
Release:        22.04
Codename:       jammy

(2)先备份下原始源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup

(3)修改文件   

sudo vim  /etc/apt/source.list

清除原有的,替换以下源

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

(4)保存下,更新软件库

sudo  apt update

(5)升级软件

sudo  apt upgrade

5.mongod和mongo的区别

(1)区别

1)mongod
它是处理MongoDB系统的主要进程。主要负责处理数据请求,管理数据存储,和执行后台管理操作。当我们运行mongod命令意味着正在启动MongoDB进程, 并且在后台运行。2)mongo
它是一个命令行实现的客户端操作mongodb的工具,用于连接一个特定的mongod实例。当我们没有带参数运行mongo命令它将使用默认的localhost:27017和mongod进行连接。

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

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

相关文章

6、Qt使用Log4Qt日志

一、知识点 1、Log4Qt有三部分 logger&#xff1a;负责捕获日志信息 layout&#xff1a;负责使用不同的样式输出日志 appender&#xff1a;负责输出信息到不同的目的地&#xff0c;比如数据库、文件、控制台等等 2、 日志级别如下&#xff0c;从上往下依次递增 ALL&#xff1a;…

css之svg 制作圆及旋转

1.代码 <template><div class"loading-box"><div class"circle-container"><svg width"75" height"75" class"move-left-to-right"><circle cx"37.5" cy"37.5" r"26&…

高端影像仪:打破微小产品测量局限

在现代工业生产中&#xff0c;影像仪以CCD数位影像为基石&#xff0c;将计算机屏幕测量技术与空间几何运算的能力融为一体&#xff0c;可以用于测量微小产品的各种尺寸和形状&#xff0c;为生产过程中的质量控制提供重要的参考依据。 影像仪产品内置高精度光学电动双倍镜头&am…

什么是动态住宅IP?它有什么用途?

随着网络的迅速发展&#xff0c;许多人对代理IP已经有了比较深刻的认识&#xff0c;并且广泛地运用到了各自的业务中&#xff0c;尤其在跨境的相关业务中表现尤其卓越。对于代理IP的类别&#xff0c;也需要根据自己的业务类型具体选择最合适的&#xff0c;那么今天IPFoxy就给大…

网页设计--第5次课后作业

1、快速学习JavaScript的基本知识第1-10章 JavaScript入门 - 绿叶学习网 2、使用所学的知识完成以下练习。需求如下3个&#xff1a; 1&#xff09;点亮灯泡 2&#xff09;将所有的div标签的标签体内容后面加上&#xff1a; very good 3&#xff09;使所有的复选框呈现被选…

【javaWeb】HTTP协议

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的应用层协议 HTTP 是一个文本格式的协议. 可以通过 Chrome 开发者工具或者 Fiddler 抓包, 分析 HTTP 请求/响应的细节. 上图是通过Fiddler对访问百度搜索页时抓取的一个http协议的包。 观察抓包结果,可以看到,当前 http…

myAGV 2023 Pi 全新升级!

Introduction 在高速发展的自动化和机器人技术领域&#xff0c;我们的公司一直致力于提供高效、灵活且可靠的轻量级机械臂解决方案。然而&#xff0c;我们也深知&#xff0c;传统的机械臂需要固定在一个地方&#xff0c;这在一定程度上限制了其在空间上的应用范围。为了突破这一…

【论文阅读】ActiveNeRF:通过不确定性估计候选新视图

【论文阅读】ActiveNeRF: Learning where to See with Uncertainty Estimation Abstract1 Introduction3 Background4 NeRF with Uncertainty Estimation5 ActiveNeRF5.1 Prior and Posterior Distribution5.2 Acquisition Function5.3 Optimization and Inference 6 Experimen…

ECharts配置项手册了解及使用

1&#xff1a;点击文档然后选择配置项手册或者&#xff1a;Documentation - Apache ECharts 2&#xff1a;

中间件安全:Weblogic 漏洞.(使用工具可以利用多种类型漏洞)

中间件安全&#xff1a;Weblogic 漏洞.&#xff08;使用工具可以利用多种类型漏洞&#xff09; WebLogic 是美国 Oracle 公司出品的一个 application server&#xff0c;确切的说是一个基于 JAVA EE 架构的中间件&#xff0c;WebLogic 是用于开发、集成、部署和管理大型分布式…

亚信科技AntDB数据库与库瀚存储方案完成兼容性互认证

近日&#xff0c;亚信科技AntDB数据库与苏州库瀚信息科技有限公司自主研发的RISC-V数据库存储解决方案进行了产品兼容测试。经过双方团队的严格测试&#xff0c;亚信科技AntDB数据库与库瀚数据库存储解决方案完全兼容、运行稳定。除高可用性测试外&#xff0c;双方进一步开展TP…

基于springboot-“有光”摄影分享网站系统(2023年☆全网唯一)【附源码|数据库|表结构|万字文档(LW)|技术文档|说明文档】

主要功能 前台登录&#xff1a; 注册用户&#xff1a;用户账号、密码、姓名、手机号、身份证号、性别、邮箱 用户&#xff1a; ①首页、公告资讯展示、图片素材展示、活动展示、视频素材展示、查看更多 ②论坛、发布帖子、活动、活动标题、活动类型、公告资讯、公告标题、公告…

C#,数值计算——插值和外推,径向基函数插值(RBF_interp)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 径向基函数插值 /// Object for radial basis function interpolation using n points in dim /// dimensions.Call constructor once, then interp as many times as desir…

2023年亚太杯APMCM数学建模大赛B题玻璃温室小气候调控

2023年亚太杯APMCM数学建模大赛 B题 玻璃温室小气候调控 原题再现 温室作物的产量受各种气候因素的影响&#xff0c;包括温度、湿度和风速[1]。其中&#xff0c;适宜的温度和风速对植物生长至关重要[2]。为了调节玻璃温室内的温度、风速等气候因素&#xff0c;在温室设计中常…

vue3+ts 指令简写

<template><div class"btns"><button v-has-show"shop:create">创建</button><button v-has-show"shop:edit">编辑</button><button v-has-show"shop:delete">删除</button></div…

集软件库、论坛、社区、工具箱、积分商城、会员体系、在线商城一体的后台系统+HBuilderX 前端软件社区

HBuilderX前端软件社区thinkphp后端源码 搭建好后台 在前端找到 util 这个文件 把两个js文件上面的填上自己的域名 电脑需要下载&#xff1a;HBuilderX 下载后 登录账号 没有账号就注册账号 然后上传文件 在选择你上传的文件 即可 打包选择 “发行” 可以打包app h5等等 …

开源语音大语言模型——Qwen-Audio

论文链接&#xff1a;https://arxiv.org/pdf/2311.07919.pdf 开源代码&#xff1a;https://github.com/QwenLM/Qwen-Audio 一、背景 大型语言模型&#xff08;LLMs&#xff09;由于其良好的知识保留能力、复杂的推理和解决问题能力&#xff0c;在通用人工智能&#xff08;AGI…

Matplotlib线形图的创建_Python数据分析与可视化

线形图的创建 绘制线形图设置颜色和风格设置坐标轴上下限设置图形标签 绘制线形图 在所有图形中&#xff0c;最简单的应该就是线性方程y f (x) 的可视化了。来看看如何创建这个简单的线形图。要画Matplotlib图形时&#xff0c;都需要先创建一个图形fig 和一个坐标轴ax。创建图…

Elasticsearch(ES)概述

文章目录 一.什么是Elasticsearch?1.正向索引和倒排索引2.Mysql和ES的概念对比3.安装elasticsearch、kibana 二.IK分词器三.索引库操作四.文档操作五.RestClient操作索引库1.初始化RestClient2.创建索引库3.删除索引库4.判断索引库是否存在 六.RestClient操作文档1.新增文档2.…

Python 新版来袭!3.12.0 安装教程!!

Python是一门面向对象的计算机程序设计语言&#xff0c;以简洁和优雅著称&#xff0c;可以用于网络爬虫、web开发、人工智能、机器学习、数据挖掘及分析等工作&#xff0c;是目前最受欢迎的编程语言之一。 目前常见的Python版本有Python2和Python3&#xff0c;Python3不向下&a…