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

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.mzph.cn/news/101114.shtml

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

相关文章

DeepFace【部署 03】轻量级人脸识别和面部属性分析框架deepface在Linux环境下服务部署(conda虚拟环境+docker)

Linux环境下服务部署 1.使用虚拟环境[810ms]1.1 环境部署1.2 服务启动 2.使用Docker[680ms] 1.使用虚拟环境[810ms] 1.1 环境部署 Anaconda的安装步骤这里不再介绍,直接开始使用。 # 1.创建虚拟环境 conda create -n deepface python3.9.18# 2.激活虚拟环境 cond…

CAMERALINK通信应用

简述: Cameralink是一个全面的视频接口,他可以满足以前所有的传输视频的功能,包括通信、配置、应答、同步、以及复位等等,在以前简单提过一下,但是没有深入研究,其实这个通信还是比较简单的,在这…

rpm打包新手入门

rpm介绍 RPM(Red Hat Package Manager)是一种软件包管理工具,主要用于Red Hat及其衍生发行版如Fedora、CentOS等。RPM可以帮助用户方便地安装、升级、删除软件包。RPM包主要由以下几部分组成: 包名:软件包的名称&…

过滤器的实现及其原理责任链设计模式

Filter过滤器 过滤器的应用 DeptServlet,EmpServlet,OrderServlet三个业务类的业务方法执行之前都需要编写判断用户是否登录和解决的中文乱码的代码,代码没有得到重复利用 Filter是过滤器可以用来编写请求的过滤规则和多个Servlet都会执行的公共代码,Filter中的业务代码既可…

JVM的内存模型

一、JVM的内存模型 1.1、目标 内存模型是用来描述JVM内部的内存结构和内存管理的模型。它定义了JVM在运行Java程序时所需要的各种内存区域,以及每个内存区域的作用和特点。 1.2、结构划分 1.2.1、栈 每个线程在执行Java方法时会创建一个栈帧(Stack …

Chrome自动播放限制策略

原文链接:Chrome 自动播放限制策略 Web浏览器正在朝着更严格的自动播放策略发展,以便改善用户体验,最大限度地降低安装广告拦截器的积极性并减少昂贵和/或受限网络上的数据消耗。这些更改旨在为用户提供更大的播放控制权,并使开发…

elasticsearch索引的数据类型以及别名的使用

在上篇文章写了关于elasticsearch索引的数据类型,这里就详细说下索引的增删改查以及其他的一些操作吧。 1、索引的增、删、改、查 先新建一个索引结构,代码如下 PUT test-3-2-1 {"mappings": {"properties": {"id": {&…

如何看待Unity新的收费模式?(InsCode AI 创作助手)

Unity引擎是目前全球最受欢迎的3D游戏和应用开发引擎之一,按照Unity公司自己的说法,全球1000款畅销移动游戏中70%以上都使用了Unity引擎。如果统计全平台(包括PC、主机和移动设备)的情况,非官方数据是,超过…

[sqoop]hive导入mysql,其中mysql的列存在默认值列

一、思路 直接在hive表中去掉有默认值的了列,在sqoop导入时,指定非默认值列即可, 二、具体 mysql的表 hive的表 create table dwd.dwd_hk_rcp_literature(id string,literature_no string,authors string,article_title string,source_title string…

RabbitMQ开启消息发送确认和消费手动确认

开启RabbitMQ的生产者发送消息到RabbitMQ服务端的接收确认(ACK)和消费者通过手动确认或者丢弃消费的消息。 通过配置 publisher-confirm-type: correlated 和publisher-returns: true开启生产者确认消息。 server:port: 8014spring:rabbitmq:username: …

项目创建 Vue3 + Ts + vite + pinia

vite官网 项目初始化 准备安装工作(按步骤创建) npm init vuelatest创建完成后再次安装对应插件 然后百度配置main.ts里面引入 npm i pinia --save //安装pinia npm i vue-router --save //安装router npm i axios --save //安装axios //安装sass或less npm add -D scss npm…

Hadoop----Hive的使用

1.数据库的安装,通过网上教程,使用yum进行安装即可,一定删除干净,下载与Hive版本对应的MySQL。 2.Hive的安装,在官网下载.tar.gz包解压至对应目录(/export/server),可以根据网上教程…

Python 函数参数传递

Python 函数参数传递 我们都知道,在C中,函数参数的传递包括,值传递、引用传递、地址传递,这三种参数传递方式,并且可以在定义函数时显式的指明传递方式,而Python并非如此。 Python 的函数参数传递是基于对…

uniapp-vue3微信小程序实现全局分享

uniapp-vue3微信小程序实现全局分享 文章目录 uniapp-vue3微信小程序实现全局分享微信小程序官方文档的分享说明onShareAppMessage(Object object)onShareTimeline() uniapp 官方文档的分享说明onShareAppMessage(OBJECT) 实现全局分享代码结构如下share.js文件内容main.js注意…

聊聊身边的嵌入式:用了七八年的电动牙刷,突然罢工了!!!

家里用了七八年的电动牙刷,前两天突然罢工。先尝试一下野蛮的修复方法(摔摔打打),这种独家绝技屡试不爽,曾经修好过收音机,电视机,电子手表… 等等。不过这次,没有成功!这周末终于有点儿时间&am…

数据库Mysql三大引擎(InnoDB、MyISAM、 Memory)与逻辑架构

MySQL数据库及其分支版本主要的存储引擎有InnoDB、MyISAM、 Memory等。简单地理解,存储引擎就是指表的类型以及表在计算机上的存储方式。存储引擎的概念是MySQL的特色,使用的是一个可插拔存储引擎架构,能够在运行的时候动态加载或者卸载这些存…

PostgreSQL limit 语法

PostgreSQL limit 语法 LIMIT 是 PostgreSQL 中用于限制查询结果数量的关键字。其语法如下: SELECT column1, column2, ... FROM table_name LIMIT number_of_rows;其中,SELECT 语句用于指定要查询的列和数据表,LIMIT 用于指定查询结果的行…

奥威BI系统:做数据可视化大屏,又快又简单

数据可视化大屏的制作难吗?会很花时间精力吗?这就要看用的是什么软件了。如果用的是BI系统,特别是奥威BI系统这类BI商业智能软件,那就是又快又简单。 奥威BI系统介绍: 奥威BI系统是一款高效的数据可视化大屏工具&…

Xilisoft Video Converter Ultimate for Mac:让音视频转换变得更简单

无论是在工作还是娱乐中,我们都会遇到音视频格式不兼容的问题。这时候,一个好用的音视频格式转换工具就显得尤为重要。Xilisoft Video Converter Ultimate for Mac(曦力音视频转换)就是这样一款让您的音视频转换变得更简单的工具。…

linux的管道命令|

有时候,我们可能需要”递归地“执行多条命令,将命令一的结果作为命令二的输入,这时候就需要使用管道命令| 管道命令|可以将多条命令连接起来,每一个命令单独执行,并作为下一个命令的输入 格式: cmd1|cmd2…