MongoDB安装、设置密码、操作命令、配置文件说明、备份与还原

news2024/11/25 6:59:34

目录

一、mongodb概述

二、mongodb安装部署

三、mongodb设置密码

四、MongoDB操作命令与说明

五、配置文件说明

六、备份与还原


一、mongodb概述

MongoDB是一个非关系型数据库管理系统,它使用文档模型存储数据。MongoDB中的文档类似于JSON对象,可以包含键值对和嵌套文档。MongoDB提供了强大的查询语言、聚合框架、索引和直接在数据存储中运行的计算。

MongoDB被广泛应用于许多领域,特别是Web应用程序和大数据领域。它具有高度可扩展性和灵活性,可以处理多种数据类型。此外,MongoDB还提供了一系列工具和库,以方便开发人员在应用程序中使用它。

MongoDB可以存储Web内容管理系统的重要数据,例如页面和文章内容、标签等,以及和用户相关的数据。

二、mongodb安装部署

1. 添加 MongoDB 的官方库。

[root@localhost ~] vim /etc/yum.repos.d/mongodb-org-4.4.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
~                                                           

2. 安装 MongoDB。

[root@localhost ~] yum install -y mongodb-org

3. 配置 MongoDB。

[root@localhost ~] vim /etc/mongod.conf
 port: 27017
  bindIp: 0.0.0.0   #任何IP都可以访问

4. 启动 MongoDB、设置 MongoDB 为系统服务。

6. 登录 MongoDB。

[root@localhost ~] mongo
> 

三、mongodb设置密码

> use admin   #进入admin
switched to db admin
> db.createUser({ user: "admin", pwd: "yourpassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })   #创建用户和密码
Successfully added user

> exit
bye
[root@localhost ~] systemctl stop mongod.service    
[root@localhost ~] systemctl start mongod.service    #重启mongod 服务
[root@localhost ~] mongo -u admin -p yourpassword --authenticationDatabase admin #管理员登录


[root@localhost ~] mongo 192.168.1.12:27017 -u admin -p yourpassword --authenticationDatabase admin   #用另一台服务器远程登录

四、MongoDB操作命令与说明

数据库说明

admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

以下是MongoDB的常见命令操作及说明:

1. show dbs

显示所有数据库的列表。

2. use <dbname>

> use skl

选择要使用的数据库。如果该数据库不存在,则会创建一个新数据库。

3.db.<collection>.find()

db 表示当前数据库,collection 表示要查询的集合。find() 方法用于查询集合中的所有文档,并将结果返回给用户。用户可以根据需要对查询结果进行进一步处理或展示。

查找指定集合中的文档,例如:

> db.users.find()
{ "_id" : ObjectId("648843e8136d7c99cdb43fcd"), "name" : "John", "age" : 30, "city" : "New York" }

4. db.<collection>.insertOne()

在指定集合中插入一个新文档,

> db.users.insertOne( { name: "John", age: 30, city: "New York" } )
{
	"acknowledged" : true,
	"insertedId" : ObjectId("648843e8136d7c99cdb43fcd")

5. db.<collection>.updateOne()

更新指定集合中的一个文档,

db.users.updateOne(

   { name: "John" },

   { $set: { city: "San Francisco" } }

)

6. db.<collection>.deleteOne()

删除指定集合中的一个文档

db.users.deleteOne( { name: "John" } )

7. db.<collection>.count()

返回指定集合中文档的数量。

8. db.<collection>.drop()

删除指定集合。

9.db.createUser()

创建一个新的数据库用户。

db.createUser({ user: "myUser", pwd: "myPassword", roles: [ { role: "readWrite", db: "myDatabase" } ] })

10. db.dropDatabase()

删除当前使用的数据库。

11. db.stats()

获取当前使用的数据库的状态信息。

以上是MongoDB的常见命令操作及说明,可以满足大多数日常工作所需。

五、配置文件说明

MongoDB的配置文件是文本文件,用于指定MongoDB运行时的配置信息。采用使用配置文件的方式启动MongoDB可以使得管理和配置MongoDB更为方便。

MongoDB的配置文件在启动时需要指定,通常可以使用`mongod --config`命令来指定。

以下是MongoDB配置文件的常用参数及其说明

- bindIp:绑定的IP地址,默认值为`0.0.0.0`,表示可以连接所有的IP地址。可以通过指定一个特定的IP地址或者多个来限制MongoDB的访问。

- port:MongoDB监听的端口,默认端口号为27017。

- dbpath:MongoDB数据库使用的文件夹路径,默认路径为`/data/db`。

- logpath:MongoDB日志文件的路径。

- logappend:如果设置为true,则MongoDB的日志文件使用追加模式。

- quiet:如果设置为true,则MongoDB不输出任何日志信息。

- pidfilepath:MongoDB进程ID文件路径。

- maxConns:MongoDB允许连接的最大数量,默认值为`20000`。

- maxIncomingConnections:MongoDB允许同时打开的最大连接数,默认值为`65536`。

- storage:MongoDB存储引擎,默认为`wiredTiger`。

使用配置文件启动MongoDB的示例命令如下:

mongod --config /etc/mongod.conf

以上是MongoDB配置文件的常用参数及其说明。在实践中,需要根据具体的需求和硬件条件来调整参数值以实现最佳性能功效。

六、备份与还原

1.热备份:

(1)使用mongodump命令导出MongoDB的备份数据。以下命令将备份数据导出到`/data/backup`目录下:

mongodump --out /data/backup

(2)如果需要对导出的备份数据进行压缩,可以使用以下命令:

tar -czvf backup.tar.gz /data/backup

[root@localhost ~] mongodump --out /data/backup
[root@localhost ~] tar -czvf backup.tar.gz /data/backup

2. 冷备份

冷备份是在MongoDB处于新启动的状态下进行备份的一种方式。具体步骤如下:

(1)使用MongoDB的`mongodump`命令导出MongoDB的备份数据。以下命令将备份数据导出到`/data/backup`目录下:

mongodump --out /data/backup

(2)停止MongoDB服务:

sudo systemctl stop mongod

(3)使用tar命令将漏斗备份数据压缩成一个文件:

tar -czvf backup.tar.gz /data/backup

(4)启动MongoDB服务:

sudo systemctl start mongod

备份是MongoDB管理的重要组成部分,定期备份MongoDB数据库是保证数据安全性的重要手段之一。对于生产系统,推荐使用自动化的备份解决方案。

2.还原:

(1)解压备份文件

首先,需要解压缩MongoDB备份文件。假设备份文件`backup.tar.gz`被解压到了`/data/backup`目录,使用以下命令解压备份文件:

tar -xzvf backup.tar.gz -C /data/backup

(2)停止MongoDB服务

在还原备份数据期间,需要停止MongoDB服务以避免出现意外。使用以下命令停止MongoDB服务:

sudo systemctl stop mongod

(3)使用mongorestore命令还原备份数据

使用mongorestore命令将备份数据还原到MongoDB中。以下命令将备份数据恢复到MongoDB:

mongorestore /data/backup

该命令将备份数据恢复到原来的集合和数据库中,也可以通过指定`--db`参数将备份数据恢复到一个新的数据库中。

(4)重启MongoDB服务

还原备份数据后,重启MongoDB服务:

sudo systemctl start mongod

[root@localhost ~] mongodump --out /data/backup
[root@localhost ~] tar -czvf backup.tar.gz /data/backup
[root@localhost ~] tar -xzvf backup.tar.gz -C /data/backup
[root@localhost ~] mongorestore /data/backup

以上是将MongoDB备份数据还原的简单步骤。在实践中,备份和还原数据时需要谨慎操作,以确保数据的完整性和安全性。

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

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

相关文章

总结899

目标规划&#xff1a; 月目标&#xff1a;6月&#xff08;线性代数强化9讲&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;线性代数强化3讲&#xff0c;英语背3篇文章并回诵&#xff0c;检测 今日已做&#xff1a; 1.读了两篇文章&a…

Spring:InvalidDefinitionException: Direct self-reference leading to cycle

一、现象 一个列表接口报错&#xff0c;没有返回信息&#xff0c;异常堆栈如下&#xff1a; 11:52:05.096 [http-nio-8180-exec-36] ERROR c.u.s.f.w.e.GlobalExceptionHandler - [handleRuntimeException,65] - 请求地址XXXXX,发生未知异常. org.springframework.http.conve…

(el-Tree)操作:Element-plus 中Tree 树形控件的样式等的使用

Ⅰ、Element-plus 提供的Tree树形控件组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供Tree组件情况&#xff1a; 其一、Element-ui 自提供的Table代码情况为(示例的代码)&#xff1a; // Element-plus 自提供的代码&#xff1a; // 此时是使用了 ts 语言环境&…

06-揭开神秘面纱:Golang method的魅力解析

&#x1f4c3;个人主页&#xff1a;个人主页 &#x1f525;系列专栏&#xff1a;Golang基础 &#x1f4ac;Go&#xff08;又称Golang&#xff09;是由Google开发的开源编程语言。它结合了静态类型的安全性和动态语言的灵活性&#xff0c;拥有高效的并发编程能力和简洁的语法。G…

宝鸡陇县中学弱电系统集成设计方案_kaic

摘 要 随着世界各国教育信息化的推进&#xff0c;我国在教育信息基础设施和资源上也在逐步加快步伐。校园信息化平台的建设关系到校园网站的技术实现、广播系统、视频监控系统的建设&#xff0c;能够使知识获取更便捷、校园文化生活更丰富、校园管理更精准。利用信息交互的特性…

chatgpt赋能python:Python如何排列输出列表的数

Python如何排列输出列表的数 Python是一门广泛应用于数据分析、科学计算等领域的编程语言&#xff0c;其简洁易学、强大的编程特性使得其成为很多领域中的首选语言。在Python中&#xff0c;列表是一种非常常见的数据结构&#xff0c;其可以存储大量相关数据&#xff0c;并且通…

【八大排序(五)】快排进阶篇-挖坑法+前后指针法

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:八大排序专栏⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学习排序知识   &#x1f51d;&#x1f51d; 快排进阶篇 1. 前情回顾2. 思路回顾3. 单…

chatgpt赋能python:Python排列组合:让编程更简单

Python排列组合&#xff1a;让编程更简单 Python是一种现代化的编程语言&#xff0c;同时也是一种强大的工具。在Python中&#xff0c;排列组合是极其重要的一种操作。在本篇文章中&#xff0c;我们将介绍Python中的排列组合&#xff0c;并探讨如何利用Python编程语言进行排列…

十.多线程

1、进程与线程 &#xff08;1&#xff09;操作系统与进程 1.程序&#xff1a;代码。 2.进程&#xff1a;程序的动态执行过程。 &#xff08;2&#xff09;进程与线程 线程&#xff1a;线程&#xff1a;是比进程更小的执行单位&#xff0c;一个进程在其执行过程中&#xff0…

chatgpt赋能python:Python中如何找到编程中的错误

Python中如何找到编程中的错误 Python是一种旨在提高开发者生产力的高级编程语言。由于其简洁性和可读性&#xff0c;它越来越成为开发者们的首选语言。然而&#xff0c;就像其他编程语言一样&#xff0c;Python编程中难免会有错误。本文将介绍一些有用的技巧和工具&#xff0…

STM32速成笔记—概述

文章目录 前言一、专栏简介二、前期准备三、编程规范以及程序架构简介1. 编程规范2. 程序架构 四、STM32F103ZET6简介 前言 本人技术菜鸟一枚&#xff0c;2022年大学毕业&#xff0c;大学加入老师实验室&#xff0c;参加过一些嵌入式相关的比赛&#xff0c;获得过2020年TI杯大学…

【利用AI让知识体系化】简要了解网络七层协议

文章目录 一、前言引言目的和意义 二、网络七层协议简介OSI参考模型七层协议分层结构和各层协议简介 三、物理层 - Layer 1物理层概述物理层的作用物理层标准和协议 四、数据链路层 - Layer 2数据链路层概述常见的协议 五、网络层 - Layer 3网络层概述网络层的作用IP地址的作用…

Nuxt.js:用 Vue.js 打造服务端渲染应用程序

文章目录 I. 简介Nuxt.js是什么Nuxt.js的历史和发展Nuxt.js的特点和优势1. 服务端渲染2. 自动生成路由3. 静态文件服务4. 异步数据加载5. 基于Webpack的构建系统6. 支持模块化的Vue组件7. 可定制的ESLint与StyleLint8. 支持PWA等高级功能 II. Nuxt.js基础Nuxt.js的安装和配置Nu…

ACL2023 | WebCPM:清华发布中文LFQA 数据集,探索搜索引擎和PLM大模型结合新范式

一、概述 title&#xff1a;WEBCPM: Interactive Web Search for Chinese Long-form Question Answering 论文地址&#xff1a;https://arxiv.org/abs/2305.06849 代码&#xff1a;https://github.com/thunlp/WebCPM 1.1 Motivation 开发一个类似于WebGPT一样的中文版本的…

如何保证数据库分布式事务的强一致性

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 针对分布式数据库&#xff0c;如何保证分布式事务的强一致性&#xff0c;是分布式数据库的关键。分布式事务的强一致性方案这里介绍两种&#xff0c;一种是GTM(global transaction manager),另一种是基于XA协议的两阶…

12道前端知识题目深入浅出下JavaScript

文章目录 1. 原型和原型链2. 作用域和闭包3. 高阶函数和函数式编程4. 异步编程和Promise、async/await5. 正则表达式6. 对象属性描述符和代理7. ES6新特性如模板字符串、解构赋值、箭头函数、let/const等8. 设计模式和架构模式设计模式架构模式 9. 性能优化技巧和调试技巧1. 性…

chatgpt赋能python:Python如何持续保存CSV文件

Python如何持续保存CSV文件 如果你需要不断更新数据并将其保存到CSV文件中&#xff0c;Python语言可以轻松完成这个任务。本文将介绍如何使用Python在代码执行的同时&#xff0c;将数据不断写入CSV文件中&#xff0c;实现持续保存的功能。 CSV文件是什么&#xff1f; CSV代表…

chatgpt赋能python:抓包是什么?

抓包是什么&#xff1f; 当我们在浏览器中访问一个网站时&#xff0c;我们的电脑会向网络服务器发送请求并接收响应。这个过程中&#xff0c;有一些工具可以让我们查看和分析这些请求和响应&#xff0c;其中最常用的就是“抓包”。 抓包就是指截获网络通信过程中的数据包并分…

chatgpt赋能python:Python怎么指定循环次数?

Python怎么指定循环次数&#xff1f; Python是一种广泛应用于编程领域的高级编程语言&#xff0c;它具有简单易学、代码可读性强、语言编写规范等诸多优点。其中&#xff0c;循环是Python语法中的重要一环&#xff0c;而如何指定循环次数则是其中一个重要的问题。 什么是循环…

Linux 检测通信路径上的PMTU(路径最大传输单元)

问题描述 终端设备向云端POST数据&#xff0c;数据量较小的没有问题&#xff0c;数据量大的必然出现丢包。网络很通畅&#xff0c;延迟较低。 分析 后来发现&#xff0c;终端到云端的通信路径上某个路由器节点的MTU小于终端的MTU&#xff0c;当终端发出的IP数据包长度大于该…