IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> CentOS7上用docker安装和使用MongoDB -> 正文阅读

[大数据]CentOS7上用docker安装和使用MongoDB

一、使用Docker安装MongoDB

1、参考文档

Docker 安装 MongoDB
Docker 命令大全


2、Docker 安装 MongoDB

  1. 取最新版的 MongoDB 镜像。

    # 这里我们拉取官方的最新版本的镜像:
    docker pull mongo:latest
    

    在这里插入图片描述

  2. 查看本地镜像

    # 使用以下命令来查看是否已安装了 mongo:
    docker images
    

    在这里插入图片描述

  3. 创建和启动容器。

    # 创建和启动容器 
    docker run  --name mongodb -p 27017:27017  -v /data/configdb:/data/configdb/ -v /data/db/:/data/db/ -d mongo --auth
    

    在这里插入图片描述

  4. 安装成功。

    # 可以通过 docker ps 命令查看容器的运行信息:
    docker ps
    

    在这里插入图片描述


3、创建管理员admin用户和密码

  1. 以 admin用户身份进入mongo。

    docker exec -it mongodb mongo admin
    

    在这里插入图片描述

  2. 创建一个 admin管理员账号。

    db.createUser({ user: 'admin', pwd: '011023', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
    db.auth('admin', '123456') # 尝试使用上面创建的用户信息进行连接。
    exit # 创建成功后可退出
    

    在这里插入图片描述


4、Docker删除操作

  1. 删除docker容器。

    docker ps -a # 查看容器
    docker rm [CONTAINER ID] # 删除docker容器
    
  2. 删除docker镜像。

    docker images # 查看镜像
    docker rmi [CONTAINER ID] # 用于删除docker镜像
    
    1. 删除前需要停止容器docker stop [CONTAINER ID];
    2. 需要注意删除镜像和容器的命令不一样;
    3. 若要删除删除镜像,则需要先删除容器

二、CentOS7上使用MongoDB

1、参考文档

MongoDB 教程
mongodb用户权限管理最全攻略:用户的创建、查看、删除与修改,mongodb入坑之旅


2、创建新的数据库和普通用户

  1. 进入MongoDB容器。

    docker exec -it mongodb /bin/bash
    
  2. 使用创建的用户进行连接(类似mysql)。

    mongo admin -u admin -p
    # 接着输入密码
    

    在这里插入图片描述

  3. 新建数据库。

    use [DATABASE_NAME] # 如果数据库不存在,则创建数据库,否则切换到指定数据库。
    use test # 这里用第二点中的testdb数据库做测试
    db # 查看此时数据库
    

    在这里插入图片描述

  4. 创建用户和密码。

    db.createUser({ user: 'zhangsan', pwd: '123456', roles: [ { role: "readWrite", db: "test" } ] })
    db.auth("zhangsan","123456") # 验证是否创建成功
    exit
    

    在这里插入图片描述

    show users 或 db.system.users.find() # 查看创建的用户
    db.dropUser(‘user_name’) # 删除用户

  5. 查询数据库。

    mongo test -u zhangsan -p 123456 # 用zhangsan连接test数据库
    show dbs #查询所有的数据库 
    # 此时显示不了testdb数据库,如果需要显示,需要向新建的数据库插入一些数据
    
  6. 向数据库插入数据后查询。

    db.test.insert({"name":"zhangsan"}) # 插入一条数据
    show dbs # 查看到test数据库
    

    在这里插入图片描述

3、插入文档并查询

  1. 插入一个文档。

    db.col.insert({title: 'MongoDB 测试', 
        description: 'MongoDB 是一个 Nosql 数据库',
        by: 'zhangsan'
    }) 
    # 以上实例中 col 是我们的集合名
    # 在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
    # 如果该集合不在该数据库中,MongoDB 会自动创建该集合并插入文档。
    

    在这里插入图片描述

  2. 查询集合。

    db.getCollectionNames ()
    

    在这里插入图片描述

  3. 查询文档。

    db.[集合名字].find() # 查询文档
    db.[集合名字].find().pretty() # pretty() 方法以格式化的方式来显示所有文档。
    

    在这里插入图片描述


三、Navicat for MongoDB连接

1、服务器端操作

  1. 修改配置文件。

    docker exec -it mongodb /bin/bash
    cd /etc
    ls
    vim mongod.conf.orig # 将bindIp注释后改为0.0.0.0
    

    在这里插入图片描述

    在这里插入图片描述

  2. 查看端口是否开放。

    netstat -ano|grep 27017
    

    在这里插入图片描述

  3. 防火墙端口放行。

    # 放行27017端口
    firewall-cmd --zone=public --add-port=27017/tcp --permanent
    # 重启防火墙
    firewall-cmd --reload
    

2、Winodos端操作(Navicat 15)

  1. 新建连接。
    在这里插入图片描述

  2. 编辑链接。
    在这里插入图片描述

  3. 测试链接。
    在这里插入图片描述

  4. 查看数据库,可以查看到插入的集合。在这里插入图片描述


四、出现的问题

uncaught exception: Error: Failed to acquire database information from privileges:xxx

  1. 分析原因:用用户‘admin’登录之后又用用户‘zhangsan’登录,导致冲突。
    在这里插入图片描述

  2. 解决方法:先exit退出,只用一个用户登录,即可进行操作。
    在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:32:03  更:2022-03-30 18:32:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:24:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码