Mac M1运行、连接 Docker MongoDB7。导出、恢复数据库

news2024/11/26 10:48:29

MongoDB,版本5、6.02、7.02适用
记录两种使用MongoDB的方法,本地安装包和docker
本地安装包方法:Mac M1安装MongoDB6、后台运行

Docker Mongo

一、docker运行MongoDB,并设置用户名密码

可以在创建容器的时候指定root用户名密码(加上参数MONGO_INITDB_ROOT_USERNAME、MONGO_INITDB_ROOT_PASSWORD)
也可以在容器运行后,进入容器连接数据库使用mongoshell创建用户
注意执行命令的路径!可以新建一个文件夹,mkdir mongodb7,用来映射config和db文件。
目前最新版本是7.0.2

#为了命令行看起来更清晰,加了换行符\,注意格式,\后面不能有空格
docker run  \
--name mongodb7 \
-p 27017:27017  \
-v $PWD/mongodb/configdb:/data/configdb/ \
-v $PWD/mongodb/data/db/:/data/db/ \
-e MONGO_INITDB_ROOT_USERNAME=root \
-e MONGO_INITDB_ROOT_PASSWORD=password \
-d mongo \
--auth
#进入mongo容器
docker exec -it mongodb7 /bin/bash

二、按需编辑配置

如果要编辑配置,比如bindIp,需要新建一个mongod.conf配置文件,MongoDB 容器在启动时会自动生成一个默认的配置文件,并将其命名为 /etc/mongod.conf.orig,我们可以复制它再编辑

#docker 镜像中没有vim,安装vim
apt-get update -y
apt-get install vim
#复制默认配置
cp /etc/mongod.conf.orig /etc/mongod.conf
vi /etc/mongod.conf
#修改后重启容器

三、容器内连接数据库

进入docker容器输入mongo,连接到数据库
旧版本命令是mongo,新版本用mongosh
mongosh
默认数据库是test
图片.png
如果在第一步docker指令中已经设置了用户名和密码,可以验证一下用户名密码,再执行其他操作
db.auth(“root”,“password”)
没有auth就会报错要求身份认证
图片.png

然后创建admin用户,以后使用uri连接要加上用户名和密码,比如比如mongodb://root:password@localhost:27017/
数据库软件可以用mongo官方的compass(免费),jet的datagrip,navicat最新版本也支持mongodb
图片.png
如果没有在docker指令中指定root用户密码,可以创建一个

show dbs
#切换到admin数据库
use admin
#新建用户
db.createUser({user: "root",pwd: "password",roles: [ { role: "root", db: "admin" } ]})
#身份验证
db.auth("root","password")

如果在其他应用中使用uri连接数据库,比如mongodb://root:password@localhost:27017/database-name?authSource=admin
要注意连接的数据库有没有对应的用户,确认在哪个数据库建的用户。在默认情况下,MongoDB会将用户凭据存储在admin数据库中

四、导出、恢复数据库

需要用到导出、恢复,mongo数据库工具在这里下载
https://www.mongodb.com/try/download/database-tools
(笔者在恢复过程遇到了点问题用旧版本mongodb-database-tools-100.6.1-1解决了,记录一下)
图片.png
图片.png

1、恢复数据库

和连接数据库的uri一样也要注意用户凭据存在哪个数据库,下面的指令 目标数据库不存在的话会自动创建,–dir指定备份文件所在文件夹,–db指定恢复到哪个数据库。如果是密钥登陆,就使用–sslCAFile ./pem文件路径。到bin文件夹执行mongorestore程序。

./mongorestore --host localhost:27017 \
--dir ./database-backup --db  database-name \
--username root --password password \
--authenticationDatabase=admin

2、导出数据库

–out指定输出的路径,不存在文件夹会自动创建

./mongodump --host localhost:27017 \
--out ./output --db  database-name \
--username root --password password \
--authenticationDatabase=admin

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

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

相关文章

ChatGPT角色扮演教程,Prompt词分享

使用指南 1、可直复制使用 2、可以前往已经添加好Prompt预设的AI系统测试使用 https://ai.idcyli.comhttps://ai.idcyli.com 雅思写作考官 我希望你假定自己是雅思写作考官,根据雅思评判标准,按我给你的雅思考题和对应答案给我评分,并且按…

【软件测试】Requests库中处理cookie的几种方式

前言 发送请求时经常需要利用请求头中的cookie字段来做用户访问状态的保持,关于的cookie的处理常见有下面一些处理方式,这里做个小小的总结 1.直接在请求中传递cookies参数 import requestshost http://119.91.144.93:82 api r/ecshop/user.php url…

一文深入理解高并发服务器性能优化

我们现在已经搞定了 C10K并发连接问题 ,升级一下,如何支持千万级的并发连接?你可能说,这不可能。你说错了,现在的系统可以支持千万级的并发连接,只不过所使用的那些激进的技术,并不为人所熟悉。…

Electron基础学习笔记

Electron基础学习笔记 官网: https://www.electronjs.org/ 文档:https://www.electronjs.org/zh/docs/latest/ Electon概述 Electron 是由 Github开发的开源框架它允许开发者使用Web技术构建跨平台的桌面应用 Electron Chromium Node.js Native AP…

基于IDEA 配置Maven环境和JDK版本(全局)

1.首先启动IDEA,进去初始界面 选择 Customize 之后,选择 All settings 2. 选择下图中的列表配置 3. 找到Maven下的Runner, 配置JRE的版本,选择自己下载使用的jdk的版本即可 4.最后配置Compiler 下的 Java Compiler 选择自己的jdk版本号&am…

将Excel表中数据导入MySQL数据库

1、准备好Excel表: 2、数据库建表case2 字段信息与表格对应建表: 3、实现代码 import pymysql import pandas as pd import openpyxl 从excel表里读取数据后,再存入到mysql数据库。 需要安装openpyxl pip install openpyxl# 读入数据&#x…

构建智能工厂设施的“智能电机保护和信息监控解决方案”

施耐德电气新推出了“智能电机保护与信息监控解决方案”,这是一个智能工厂设施建设和数字化的集成解决方案包。 进入数字化转型时代,行业最大的话题无疑是“智能工厂”。 智能工厂的字面意思是“真正的智能工厂”。 是指通过物联网(IoT&…

【每日一句】只出现一次的数

文章目录 Tag题目来源题目解读解题思路方法一:位运算 其他语言Cpython3 写在最后 Tag 【位运算-异或和】【数组】【2023-10-14】 题目来源 136. 只出现一次的数字 题目解读 给你一个数组,找出数组中只出现一次的元素。题目保证仅有一个元素出现一次&a…

ChatGPT,AIGC 制作按年份选择的动态条形图

在数据分析与可视化中,条形图是用来进行对比分析,在正负条形图中都有哪些好处与优点呢? 正负条形图是一种常用的数据可视化方式,它的优点和好处包括: 1.明确展示:正负条形图可以清晰地显示出数据中的正负差异,使读者能直观地看出数据的变化和趋势。 2.直观比较:正负条…

【设计模式】十、组合模式

文章目录 案例组合模式基本介绍类图代码 组合模式在 JDK 集合的源码分析组合模式的注意事项和细节 案例 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系。如…

Unity 3D基础——计算两个物体之间的距离

1.在场景中新建两个 Cube 立方体,在 Scene 视图中将两个 Cude的位置错开。 2.新建 C# 脚本 Distance.cs(写完记得保存) using System.Collections; using System.Collections.Generic; using UnityEngine;public class Distance : MonoBehav…

RISC-V 特权级架构

特权级别 级别的数值越大,特权级越高,掌控硬件的能力越强,在CPU硬件层面,M模式必须存在,其它模式可以不存在 执行环境调用 ecall ,这是一种很特殊的陷入类的指令, 相邻两特权级软件之间的接口正…

从零开始学习调用百度地图网页API:一、注册百度地图账号

目录 注册账号申请AK 注册账号 https://lbsyun.baidu.com/index.php?titlejspopular3.0/guide/getkey JavaScript API只支持浏览器类型的ak 申请AK 注:使用示例时,需要在百度地图示例加上https:,替换ak。

UE4 顶点网格动画播放后渲染模糊问题

问题描述:ABC格式的顶点网格动画播放结束后,改模型看起来显得很模糊有抖动的样子 解决办法:关闭逐骨骼动态模糊

python+opencv+机器学习车牌识别 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…

Excel——对其他工作表和工作簿的引用

一、引用其他sheet页表区域 若希望在公式中引用其他工作表的单元格区域,可以在公式编辑状态下,通过鼠标单击相应的工作表标签,然后选择相应的单元格区域。 例1 跨sheet页引用其他工作表区域 如图1所示的工作表Sheet2为工资表。 在Sheet1表…

一文了解VR全景拍摄与后期制作

引言: VR(Virtual Reality)全景拍摄和后期制作一直是创作VR全景作品的基础,它不仅改变了我们的视觉体验,还为企业和创作者提供了更多机遇。 一.什么是VR全景拍摄? VR全景拍摄是一种新兴的拍摄…

pycharm连接gitlab

1、下载安装gitlab 下载地址:Git - Downloading Package 下载后傻瓜式安装,注意勾选配置环境变量 未配置自己配置,电脑-属性-高级系统配置-环境变量 系统变量path:添加git安装目录下bin目录 2、检验安装完成 桌面右键git-open…

NPM 常用命令(十二)

目录 1、npm unpublish 1.1 使用语法 1.2 描述 2、npm unstar 2.1 使用语法 3、npm update 3.1 使用语法 3.2 描述 3.3 示例 插入符号依赖 波浪号依赖 低于 1.0.0 的插入符号依赖 子依赖 更新全局安装的包 4、npm version 4.1 使用语法 5、npm view 5.1 使用语…

【yolov5】改进系列——特征图可视化(V7.0 的一个小bug)

文章目录 前言一、特征图可视化1.1 V7.0的小bug 二、可视化指定层三、合并通道可视化总结 前言 对于特征图可视化感兴趣可以参考我的另一篇记录:六行代码实现:特征图提取与特征图可视化,可以实现分类网络的特征图可视化 最近忙论文&#xf…