在CentOS上部署MongoDB数据库
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,MongoDB简介MongoDB时一款跨平台、面向文档的 数据库。可以实现高性能、高可用性,并且能够轻松扩展。是一个基于分布式文件存储的开源数据库系统,在高负载情况下,添加更多节点,可以保证服务器性能
千家信息网最后更新 2025年11月07日在CentOS上部署MongoDB数据库
MongoDB简介
MongoDB时一款跨平台、面向文档的 数据库。可以实现高性能、高可用性,并且能够轻松扩展。是一个基于分布式文件存储的开源数据库系统,在高负载情况下,添加更多节点,可以保证服务器性能。
MongoDB的特点
- MongoDB的特点包括面向集合存储、模式自由、丰富的查询语句和多级索引、复制集机制、易于水平扩展、可插入存储引擎、跨平台多语言支持等。
- MongoDB安装简单,提供了面向文档存储功能,操作起来比较容易。
- MongoDB提供了复制、高可用性和自动分片功能。如果负载增加(需要更多的存储空间和更强的处理能力),它可以分布在计算机网络中的其他节点上,这就是所谓的分片。
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组 。
- MongoDB支持各种编程语言:Ruby、Python、Java、C++、PHP、C#等多种语言。
MongoDB适用领域
MongoDB可以为Web应用提供可扩展的高性能数据存储解决方案。MongoDB主要适用的领域有网站数据、分布式场景、数据缓存和JSON文档格式存储。适合大数据量、高并发、弱事务的互联网应用,其内置的水平扩展机制提供了从几百万到十亿级别的数据处理能力,可以很好的满足Web2.0和移动互联网应用数据存储的要求。
MongoDB的存储结构
MongoDB的存储结构由逻辑存储和物理存储组成。
MongoDB的逻辑结构主要由文档(document)、集合(collection)和数据库(database)三部分组成。其中文档是MongoDB的核心概念,它是MongoDB逻辑存储的最小单元,相当于关系型数据库中的一行记录,多个文档组成集合,集合相当于关系型数据库中的表的概念,多个集合组成数据库。
MongoDB的物理存储结构主要包括数据存储和日志存储。
安装及运行控制
(1)配置YUM源仓库
[root@localhost ~]# vim /etc/yum.repos.d/mongodb.repo [mongodb-org]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc[root@localhost ~]# yum list(2)安装MongoDB
[root@localhost ~]# yum install mongodb-org -y[root@localhost ~]# vim /etc/mongod.conf //修改主配置文件// net: port: 27017 //监听端口// bindIp: 0.0.0.0 //监听地址//1)启动mongodb服务并查看端口信息
[root@localhost ~]# systemctl start mongod.servicev[root@localhost ~]# netstat -anpt | grep 27017tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 14604/mongod2)连接并访问数据库
[root@localhost ~]# /usr/bin/mongo....//省略2018-07-17T09:54:54.595+0800 I CONTROL [initandlisten] > > db.version() //查看版本信息//3.6.6> show dbs; //查看数据库//admin 0.000GBconfig 0.000GBlocal 0.000GBschool 0.000GB> db.getMongo() //查看当前数据库机器的连接地址//connection to 127.0.0.1:27017 (3)开启多实例
1)在单台服务器资源充分的情况下,可以使用多实列,以便充分使用服务器资源。具体步骤如下:
cp -p /etc/mongod.conf /etc/mongod2.conf //复制主配置文件//vim /etc/mongod2.conf //修改主配置文件// path: /data/mongodb/mongod2.log //日志存放位置// dbPath: /data/mongodb/mongo //数据存放位置// port: 27018 //端口号//mkdir -p /data/mongodb/ //创建日志存放目录//cd /data/mongodb/mkdir mongotouch mongod2.log //创建日志文件//chmod 777 mongod2.log //提升权限//mongod -f /etc/mongod2.conf //启动服务//[root@localhost mongo]# netstat -ntap | grep mongod //查看端口//tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 14604/mongod tcp 0 0 0.0.0.0:27018 0.0.0.0:* LISTEN 15552/mongod 2)进入端口号为27018的数据库
[root@localhost mongo]# mongo --port 27018 MongoDB shell version v3.6.6connecting to: mongodb://127.0.0.1:27018/MongoDB server version: 3.6.6.....//省略//> MongoDB基本操作
(1)mongoDB数据库的增、删、改、查操作。
> use school //不存在会创建,不建立集合又会删除//> db.createCollection('info') //创建集合//> show collections //查看集合(表),也可以使用show tables查看//info> db.info.insert({"id":1,"name":"jack"}) //插入数据记录//WriteResult({ "nInserted" : 1 })> db.info.find() //查看数据信息//{ "_id" : ObjectId("5b4d59fb97ae83a938d0e8b3"), "id" : 1, "name" : "jack" }> db.info.update({"id":1},{$set:{"name":"tom"}}) //更改//WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })> db.info.find(){ "_id" : ObjectId("5b4d59fb97ae83a938d0e8b3"), "id" : 1, "name" : "tom" }> db.info.drop() //删除集合//true> db.dropDatabase() //删除数据库//{ "dropped" : "school", "ok" : 1 }> show dbsadmin 0.000GBconfig 0.000GBlocal 0.000GBMongoDB的日常维护
主要包括:数据库的备份恢复、安全管理和数据库状态监控。
1)备份与恢复管理
在MongoDB中备份管理包括导入导出、备份与恢复、复制数据库和克隆集合等操作。
导出操作[root@bogon ~]# mongoexport -d kgc -c users -o /opt/users.json //适用于只有一个实例// mongoexport -h 127.0.0.1:27018 -d school -c test -o /opt/test.json //适用于有两个实列//导入操作[root@bogon opt]# mongoimport -d kgc -c user1 --file users.json //适用于只有一个实例// mongoimport -h=127.0.0.1:27018 -d school -c txt --file test.json //适用于有两个实列//条件操作[root@bogon opt]# mongoexport -d kgc -c user1 -q '{"id":{"$eq":10}}' -o /opt/top10.json2)备份与恢复、复制数据库。
[root@bogon opt]# mkdir /backup //创建备份目录//[root@bogon opt]# mongodump -d kgc -o /backup/ #备份[root@bogon backup]# mongorestore -d kgc2 --dir=/backup/kgc #恢复>db.copyDatabase("kgc","kgc2") //复制数据库//3)克隆集合
mongo --port 27018 db.runCommand({"cloneCollection":"kgc.users","from":"192.168.235.190:27017"}4)创建管理用户
> use admin> db.createUser({"user":"root","pwd":"123","roles":["root"]})> db.auth("root","123")
数据
数据库
存储
备份
文档
文件
服务
日志
结构
查询
管理
配置
信息
实例
服务器
端口
逻辑
应用
支持
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
家庭服务器黄灯闪烁怎么办
其他数据库对象
郑州软件开发的几大特点
宁波手机软件开发中心
摩拜服务器挂了
北京冬奥网络安全保障中心在奇安信正式启动
企业内网服务器什么意思
讲学校专业的软件开发人员
长春软件开发培训班学费
剑灵同一服务器会员通用吗
迈迪工程软件开发集市
网络安全与安全工程专业有联系吗
数据库系统工程师证件照
政府机关的网络安全分析
软件开发的结语
怎样查看本机开放的网络安全
网络安全知识大赛通讯稿
数据库系统实体型解释
网络技术图怎么做
扬州云主机服务器
山西网络技术支撑
网游的血量是存在服务器么
链接服务器出现问题是哪里
软件定义网络技术的最大特点
宁夏智慧城管软件开发系统
深圳博达软件开发是培训公司吗
承德网络技术哪个好
联通网络技术研究院 陈崴嵬
安徽工业软件开发定制费用
网络安全设施清单