Docker部署 MongoDB及常用命令
docker 部署
docker run -d \--name mongo \-e MONGO_INITDB_ROOT_USERNAME=root \-e MONGO_INITDB_ROOT_PASSWORD=123456 \-p 27017:27017 \-v ./local-mongo-data:/data/db \mongo:latest
或者编写 docker-compose.yaml 文件。如下:
version: '3.1'services:mongo:image: mongo:latestcontainer_name: mongoenvironment:MONGO_INITDB_ROOT_USERNAME: rootMONGO_INITDB_ROOT_PASSWORD: 123456ports:- 27017:27017volumes:- ./local-mongo-data:/data/db # 挂载本地目录到容器的数据目录
常用命令
# 登录
mongosh -u root -p --authenticationDatabase admin ## 输入密码
## 查看数据库
show dbs
## 切换数据库
use [dbname]
## 查看表
show tables
## 查看数据
db.[table name].find()
创建用户
1. 连接到 MongoDB
首先,连接到 MongoDB 实例 使用管理员权限:
bash mongosh -u root -p --authenticationDatabase admin
2. 选择数据库
你可以在任意数据库中创建角色,通常会在 admin 数据库中创建全局角色,或者在某个特定的数据库中创建角色。
use mydatabase // 选择一个特定的数据库,或使用 admin 数据库
3. 创建角色
使用 db.createRole() 方法来创建一个角色。你可以指定该角色的权限、作用域以及可以访问的数据库。
语法:
db.createRole({role: "roleName", // 角色名称privileges: [ // 权限数组{resource: { db: "databaseName", collection: "collectionName" }, // 权限作用的数据库和集合actions: [ "action1", "action2" ] // 角色具有的操作权限,如 "find", "insert", "update" 等}],roles: [ // 角色继承其他角色{ role: "otherRoleName", db: "databaseName" }]
});
4. 角色权限说明
MongoDB 中的权限可以控制特定的操作(如读取、写入、创建索引等)。以下是一些常见的操作权限:
"find":读取文档。"insert":插入文档。"update":更新文档。"remove":删除文档。"createCollection":创建集合。"createIndex":创建索引。"dropCollection":删除集合。"dropIndex":删除索引。
5. 示例:创建一个自定义角色
假设我们希望为 mydatabase 创建一个角色,该角色允许用户在该数据库中进行插入和查询操作。我们可以使用以下命令:
db.createRole({role: "insertAndFindRole", // 角色名称privileges: [{resource: { db: "mydatabase", collection: "" }, // 对 mydatabase 数据库的所有集合进行权限控制actions: ["find", "insert"] // 该角色具有 "find" 和 "insert" 权限}],roles: [] // 不继承其他角色
});
6. 查看已创建的角色
要查看当前数据库中所有的角色,可以使用以下命令:
show roles
或者查看特定数据库中的角色:
use mydatabase
show roles
7. 将角色授予用户
创建角色后,您可以将角色分配给用户。使用 db.grantRolesToUser() 来给用户分配角色。
db.grantRolesToUser("myuser", [{ role: "insertAndFindRole", db: "mydatabase" }
]);
或者创建用户
db.createUser({ user: "user", pwd: "123456", roles: [{role: "insertAndFindRole", db: "test" }]})
8. 删除角色
如果你不再需要某个角色,可以使用 db.dropRole() 删除它:
db.dropRole("insertAndFindRole");
常见问题
1. 无法登录 MongoDB
问题描述:
当你创建了 MongoDB 用户后,可能会遇到用户无法登录的问题。
解决方法:
MongoDb的用户是与数据库绑定的,默认使用创建用户时所在的数据库作为认证数据库。如果用户在一个数据库中创建,但在登录时没有正确指定认证数据库,可能会导致认证失败。
为了解决这个问题,可以通过在连接字符串中添加 ?authSource=admin 来明确指定认证数据库。
示例:
如果你在 admin 数据库中创建了用户,但尝试登录其他数据库,可以使用如下连接方式:
mongo -u <username> -p <password> --authenticationDatabase admin --db <your-database>
或者,如果通过 URL 连接:
mongodb://<username>:<password>@localhost:27017/<your-database>?authSource=admin
这样可以确保 MongoDB 正确地在 admin 数据库中进行身份验证。
相关文章:
Docker部署 MongoDB及常用命令
docker 部署 docker run -d \--name mongo \-e MONGO_INITDB_ROOT_USERNAMEroot \-e MONGO_INITDB_ROOT_PASSWORD123456 \-p 27017:27017 \-v ./local-mongo-data:/data/db \mongo:latest或者编写 docker-compose.yaml 文件。如下: version: 3.1services:mongo:im…...
27.[前端开发-JavaScript基础]Day04-函数基本使用-递归-变量作用域-函数式编程
一、JavaScript函数 1 认识JavaScript函数 程序中的foo、bar、baz 认识函数 函数使用的步骤 2 函数的声明和调用 声明和调用函数 函数的参数 有参数的函数练习 函数的返回值 函数的练习 arguments参数(JS高级再学习) 3 函数的递归调用 函数中调用函数…...
mac修改docker的daemon.json 镜像文件
1、找到daemon.json文件的位置 docker info 可以看出位置在: /Users/spuer/.docker 2. 进入daemon.json 所在的目录: cd /Users/spuer/.docker3. 查看daemon.json的内容: more daemon.json可以看出,没有配置registry-mirrors&…...
KIMI K1.5:大规模强化学习在大语言模型中的应用与工程实践
目录 1、核心技术创新:长上下文强化学习 2、策略优化的技术细节 2.1、在线镜像下降变体 2.2、长度惩罚机制 2.3、智能采样策略 3、工程架构创新 3.1、混合部署框架 3.2、代码沙箱与奖励模型 3.3、分布式系统架构 4、实验成果与性能提升 5、结论与未来展望 大语言模…...
seacms v9 实现的MySQL注入
目录 过滤关键词information_schema 怎么办 一、环境搭建 二、环境分析 三、源代码分析 1、过滤程序 2、注入点 四、获取数据库名 五、获取数据库表名 六、获取表的列名 七、获取数据信息 过滤关键词information_schema 怎么办 1.、利用sys数据库(MySQL 5.…...
Go中slice和map引用传递误区
背景 关于slice和map是指传递还是引用传递,很多文章都分析得模棱两可,其实在Go中只有值传递,但是很多情况下是因为分不清slice和map的底层实现,所以导致很多人在这一块产生疑惑,下面通过代码案例分析slice和map到底是…...
C# Unity 唐老狮 No.2 模拟面试题
本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: Unity课程 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体…...
【Uniapp-Vue3】开发userStore用户所需的相关操作
在项目根路径下创建的stores文件夹中创建user.js文件 并将以下内容复制到user.js中 import {ref} from "vue" import { defineStore } from pinia; const uniIdCo uniCloud.importObject("uni-id-co") const db uniCloud.database(); const usersTable…...
DeepSeek开源周首日:发布大模型加速核心技术可变长度高效FlashMLA 加持H800算力解码性能狂飙升至3000GB/s
FlashMLA的核心技术特性包括对BF16精度的全面支持,以及采用块大小为64的页式键值缓存(Paged KV Cache)系统,实现更精确的内存管理。在性能表现方面,基于CUDA12.6平台,FlashMLA在H800SXM5GPU上创下了显著成绩…...
易语言模拟真人鼠标轨迹算法 - 防止游戏检测
一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…...
DeepSeek 提示词:基础结构
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
文件系统
目录 1.认识磁盘 磁盘的物理结构 CHS定位法 磁盘的逻辑结构 2.认识文件系统 inode 分区和分组 磁盘上的文件系统 3.软硬链接 软链接 软链接的操作 创建软链接 查看软链接 删除软链接 软链接的特点 软链接的使用场景 硬链接 硬链接的操作 创建硬链接 查看硬…...
力扣LeetCode:1472 设计浏览器历史记录
题目: 你有一个只支持单个标签页的 浏览器 ,最开始你浏览的网页是 homepage ,你可以访问其他的网站 url ,也可以在浏览历史中后退 steps 步或前进 steps 步。 请你实现 BrowserHistory 类: BrowserHistory(string h…...
【FL0091】基于SSM和微信小程序的社区二手物品交易小程序
🧑💻博主介绍🧑💻 全网粉丝10W,CSDN全栈领域优质创作者,博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发…...
【笔记ing】每天50个英语词汇
ex- e-out exclude 排外,排除 expect 期待,期望 单词构成: 前缀(prefix):情感(emotion)方向(orientation) 词根(root)…...
联想 SR590 服务器 530-8i RAID 控制器更换损坏的硬盘
坏了的硬盘会自动亮黄灯。用一个空的新盘来替换,新盘最好不要有东西。但是有东西可能也没啥,因为我看 RAID 控制器里有格式化的选项 1. 从 IPMI 把服务器关机,电源键进入绿色闪烁状态 2. 断电,推开塑料滑块拉出支架,…...
Java基础关键_012_包装类
目 录 一、基本数据类型对应的包装类 1.概览 2.说明 二、包装类 1.最大值与最小值 2.构造方法 3.常用方法(Integer为例) (1)compare(int x, int y) (2)max(int a, int b) 和 min(int a, int b) &…...
【react】TypeScript在react中的使用
目录 一、环境与项目配置 1. 创建 TypeScript React 项目 2. 关键tsconfig.json配置 3.安装核心类型包 二、组件类型定义 1. 函数组件(React 18) 2.类组件 三、Hooks 的深度类型集成 1. useState 2. useEffect 3. useRef 4. 自定义 Hook 四、事…...
vllm的使用方式,入门教程
vLLM是一个由伯克利大学LMSYS组织开源的大语言模型推理框架,旨在提升实时场景下的大语言模型服务的吞吐与内存使用效率。以下是详细的vLLM使用方式和入门教程: 1. 前期准备 在开始使用vLLM之前,建议先掌握一些基础知识,包括操作…...
IDEA 使用codeGPT+deepseek
一、环境准备 1、IDEA 版本要求 安装之前确保 IDEA 处于 2023.x 及以上的较新版本。 2、Python 环境 安装 Python 3.8 或更高版本 为了确保 DeepSeek 助手能够顺利运行,您需要在操作系统中预先配置 Python 环境。具体来说,您需要安装 Python 3.8 或更高…...
ADXL362嵌入式驱动库:低功耗加速度计SPI控制与实时采集
1. ADXL362加速度计驱动库技术解析与工程实践ADXL362是Analog Devices(ADI)推出的超低功耗、3轴数字MEMS加速度计,专为电池供电的物联网终端、可穿戴设备、工业状态监测及远程传感器节点等场景设计。其核心优势在于:在全量程2g/4g…...
龙芯k - 走马观碑组ST驱动移植柏
正文 异步/等待解决了什么问题? 在传统同步I/O操作中(如文件读取或Web API调用),调用线程会被阻塞直到操作完成。这在UI应用中会导致界面冻结,在服务器应用中则造成线程资源的浪费。async/await通过非阻塞的异步操作解…...
TB6612FNG双H桥电机驱动库深度解析与机器人运动控制
1. TB6612FNG_XCR库深度解析:面向嵌入式机器人控制的双路H桥驱动框架TB6612FNG_XCR并非一个简单的Arduino封装库,而是一套为真实机器人工程场景深度定制的电机控制抽象层。它在STMicroelectronics原厂TB6612FNG双H桥驱动芯片(最大持续电流1.2…...
C#索引器练习题
索引器是一种特殊的属性,允许类或结构的实例像数组一样通过索引进行访问。它提供了使用 [] 运算符访问对象中元素集合的便捷方式。一、考察索引器的定义与使用 难度:⭐定义一个 StudentClass 班级类,该类中包含一个集合用于存储学生姓名。…...
AI原生敏捷开发落地指南(Gartner 2024验证:交付周期压缩63%的关键转折点)
第一章:AI原生敏捷开发的范式跃迁 2026奇点智能技术大会(https://ml-summit.org) 传统敏捷开发以人为核心、迭代交付为特征,而AI原生敏捷开发则将大模型能力深度嵌入需求分析、测试生成、代码补全与运维反馈闭环中,形成“感知—推理—执行—…...
解决VSCode远程SSH连接中的XHR错误
解决VSCode远程SSH连接中的XHR错误 在使用Visual Studio Code(以下简称VSCode)进行远程SSH连接时,开发者可能会遇到无法下载vscode-server的问题,导致连接失败并抛出XHR错误。以下是一些常见的问题分析和解决方案。 问题背景 假设你正在使用VSCode连接到一台远程服务器,…...
开源IPAM系统实战:从零搭建企业级IP地址管理平台
1. 为什么企业需要专业的IP地址管理系统? 记得三年前我接手某中型企业的IT运维工作时,发现他们用着一个神奇的Excel表格——里面密密麻麻记录着2000多个IP地址分配情况。每次新设备入网都要手动翻查半小时,有次甚至因为复制粘贴错误导致整个部…...
javaSE之图书管理系统
思路:一个图书管理系统项目的构建本次的代码是实现一个图书管理系统要求,有登入系统和用户选择系统,之后还有用户操作交换系统,和图书管理系统,具体思路如下创建以下类,加粗部分为包test:Testbo…...
Jetson Nano + 镭神16线雷达:手把手教你将TARE自主探索算法部署到阿克曼机器人
Jetson Nano与镭神16线雷达:TARE算法在阿克曼机器人上的实战部署指南 硬件选型与系统架构设计 当我们需要将TARE自主探索算法部署到真实机器人平台时,硬件选型直接决定了后续开发流程的顺畅程度。经过多次项目实践,我发现Jetson Nano开发板与…...
如何快速掌握文本差异对比:Diff Checker完整使用指南
如何快速掌握文本差异对比:Diff Checker完整使用指南 【免费下载链接】diff-checker Desktop application to compare text differences between two files (Windows, Mac, Linux) 项目地址: https://gitcode.com/gh_mirrors/di/diff-checker 文本差异对比是…...
