• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    二、按需编辑配置

    如果要编辑配置,比如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
    #修改后重启容器
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    三、容器内连接数据库

    进入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")
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    如果在其他应用中使用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
    
    • 1
    • 2
    • 3
    • 4

    2、导出数据库

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

    ./mongodump --host localhost:27017 \
    --out ./output --db  database-name \
    --username root --password password \
    --authenticationDatabase=admin
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    SSM出租车查询系统 毕业设计-附源码220915
    【无标题】
    Redis Twemproxy 集群规范部署手册
    Java中的文件操作
    如何通过算法模型进行数据预测
    MYSQL学习之——逻辑语言(判断)
    mysql reset slave reset master
    知识分享 钡铼网关功能介绍:使用SSLTLS 加密,保证MQTT通信安全
    PageRank实战---西游记人物节点重要度
    【SQL server速成之路】——身份验证及建立和管理用户账户
  • 原文地址:https://blog.csdn.net/qq_42112618/article/details/133769230