本次测试的宿机配置:Mint19/24G/1T
虚拟机配置:CentOS7.9/2G/2U/100G/Mongodb服务端安装在该机上
单数的 MongoDB 发行版本(如4.3)是开发版本,不适合生产部署
参考1
参考2
yum方式安装
| [root@node1 ~]# vim /etc/yum.repos.d/mongodb-org-4.4.repo |
| [mongodb-org-4.4] |
| name=MongoDB Repository |
| baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ |
| gpgcheck=1 |
| enabled=1 |
| gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc |
| |
| |
| [root@node1 ~]# yum clean all && yum makecache |
| |
| |
| # 安装最新版 |
| [root@node1 ~]# yum -y install mongodb-org |
| # 安装指定版本 |
| [root@node1 ~]# yum -y install mongodb-org-4.4.8 mongodb-org-server-4.4.8 mongodb-org-shell-4.4.8 mongodb-org-mongos-4.4.8 mongodb-org-tools-4.4.8 |
| |
| |
| 默认MongoDB 使用mongod用户帐户运行并使用以下默认目录: |
| /var/lib/mongo (数据目录) |
| /var/log/mongodb (日志目录) |
| |
| |
| 要使用默认目录以外的数据目录和/或日志目录 |
| [root@node1 ~]# cp /etc/mongod.conf{,-bak} |
| [root@node1 ~]# vim /etc/mongod.conf |
| storage.dbPath=/some/data/directory 指定新的数据目录路径 |
| systemLog.path=/some/log/directory/mongod.log 指定新的日志文件路径 |
| |
| net: |
| port: 27017 |
| bindIp: 0.0.0.0 |
| |
| security: |
| authorization: enabled |
| |
| |
| [root@node1 ~]# chown -R mongod:mongod <directory> |
| |
| |
| Tips: |
| 其他mongod.conf中的配置选项 https://docs.mongodb.com/v4.4/reference/configuration-options/#mongodb-setting-storage.journal.enabled |
| |
| |
| # 启动mongod |
| [root@node1 ~]# systemctl daemon-reload |
| [root@node1 ~]# systemctl {start|stop|restart|status|enable} mongod |
| |
| 查看启动日志 |
| [root@node1 ~]# tail -f /var/log/mongodb/mongod.log |
| |
| # |
| 1、在本机的shell上启动mongod |
| [root@node1 ~]# mongo |
| > show databases; |
| admin 0.000GB |
| config 0.000GB |
| local 0.000GB |
| > use admin; |
| switched to db admin |
| > show tables; |
| system.version |
| > db.createUser({ |
| user: 'admin', // 用户名 |
| pwd: '123456', // 密码 |
| roles:[{ |
| role: 'root', // 角色 |
| db: 'admin' // 数据库 |
| }] |
| }) |
| |
| > exit |
| |
| |
| [root@node1 ~]# systemctl daemon-reload |
| [root@node1 ~]# systemctl restart mongod |
| |
| 登录 |
| [root@node1 ~]# mongo 或者 mongo -uadmin -p123456 ===>未指定库 |
| 如为非默认端口上的本地 MongoDB 实例 |
| [root@node1 ~]# mongo --port 28015 |
tarball方式安装
| 如果是通过下载 tarball 安装的则默认不创建这2个目录 |
| [root@node1 ~]# mkdir -p /var/lib/{mongo,mongodb} |
| [root@node1 ~]# chown -R mongod:mongod /var/lib/* |
| |
| 4.4版本官方安装文档:https://docs.mongodb.com/v4.4/tutorial/install-mongodb-on-red-hat-tarball/ |
| |
mongo可视化客户端-方式1(需要图形化界面)
| https://nosqlbooster.com/downloads |
| AppImage 格式是一种打包应用程序的格式,允许它们在各种不同的目标系统(基础操作系统、发行版)上运行,而无需进一步修改。 |
| AppImages 无需安装或无需 root 权限即可下载和运行。 |
| [root@node1 ~]# chmod +x nosqlbooster4mongo-6.2.17.AppImage |
| [root@node1 ~]# ./nosqlbooster4mongo-6.2.17.AppImage |




上图点击左下角的 Test Connection

上图点击右下角的Save或Save Connect

mongo可视化客户端-方式2(需要图形化界面)
| 官网下载地址:https://robomongo.org/download |
| Robo 3T 前身是 Robomongo,后被 3T 公司收购,是一款免费开源的 GUI 管理工具。支持 MongoDB 4.0+,轻量级 GUI,支持语法填充等等。适用于 Windows,macOS 和 Linux 系统。 |
| |
远程主机上的 MongoDB 实例
| [root@node1 ~]# mongo "mongodb://192.168.1.xxx:27017" |
| 或者 |
| [root@node1 ~]# mongo --host 192.168.1.xxx:27017 |
| 或者 |
| [root@node1 ~]# mongo --host 192.168.1.xxx --port 27017 |
| |
| |
| 4、带有身份验证的 MongoDB 实例 |
| [root@node1 ~]# mongo --username <username> --password <password> --authenticationDatabase <database> --host 192.168.1.xxx --port 27017 |
MongoDB提供的工具
这些工具提供了 MongoDB 在运维管理上的方便
其他分类
| # 常用命令 |
| [root@node1 ~]# mongo -uadmin -p123456 |
| 进入数据库 |
| use opop 如有则进入,如无则新建并进入 |
| show dbs 查看库 |
| admin 0.000GB |
| config 0.000GB |
| local 0.000GB |
| opop 0.000GB |
| 在opop库中创建表 |
| db.test.insert({name:"zhangsan", age:18, length:180, lover:"keke"}) |
| WriteResult({ "nInserted" : 1 }) # 正确回显 |
| 查看test表中的数据 |
| db.test.find({}) |
| 或者 |
| db.test.find({name: "zhangsan"}) |
| 或者按一定格式输出 |
| db.test.find({name: "zhangsan"}).pretty() # 重点是.pretty() |
| |
| 查看当前库下的用户 |
| show users |
| 创建用户(在opop数据库创建lisi用户和设置用户密码,并给该用户admin数据库上readWrite的角色,角色部分见下述数据库默认角色部分) |
| 注:在opop库内 |
| db.createUser({ |
| user: "lisi", |
| pwd: "123456", |
| roles:[{ |
| role: "readWrite", |
| db: "admin" |
| }] |
| }) |
| 验证登陆 |
| mongo -u lisi -p 123456 --authenticationDatabase opop |
| 删除用户 |
| use opop |
| db.dropUser('lisi') |
| 修改用户密码 |
| db.updateUser('admin', {pwd: '654321'}) |
| 密码认证 |
| db.auth('admin', '123456') |
| |
| |
| |
| db.collection.insertOne() #插入单个文档 |
| db.collection.insertMany() #插入多个文档 |
| db.collection.insert() #插入单条或多个文档 |
| |
| 插入操作行为影响点: |
| 1、自动创建不存在的集合、数据库,例如这里的inventory集合● |
| 2、如果不指定,自动生成主键id及其值 |
| 3、写操作都是基于单个文档级别的原子操作 |
| 4、确认写操作级别,在分片集群中需要关注 |
| |
| |
| |
| # MongoDB 数据库默认角色 |
| 数据库用户角色:read、readWrite |
| 数据库管理角色:dbAdmin、dbOwner、userAdmin |
| 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager |
| 备份恢复角色:backup、restore |
| 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase |
| 超级用户角色:root |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」