MongoDB的小记(install)

本文详细介绍了如何在Linux环境下安装MongoDB 4.2.8,配置依赖,设置环境变量,编译安装,以及构建复制集实现读写分离。涵盖了启动、停止、端口管理、复制集操作、CRUD操作和基本的索引管理等内容。
摘要由CSDN通过智能技术生成

背景

搭建数据库测试环境(任何时候都需要按照官网的标准进行)

依赖

#版本4.2.8  tar包安装
使用以下命令安装MongoDB社区.tgz tarball 所需的依赖项:
yum -y install libcurl openssl
yum -y install libcurl openssl --allowerasing
#添加环境变量
PATH=/usr/local/mongodb4.2.8/bin:$PATH

编译安装使用到的配置文件

mongod -f /usr/local/mongodb4.2.8/mongodb.conf & 

# cat /usr/local/mongodb4.2.8/mongodb.conf             
port=27017 

dbpath=/data/data/ 

logpath=/data/log/mongodb.log 


#fork=true 

logappend=true 

shardsvr=true

directoryperdb=true

#auth=true 

启动

mongod --dbpath /data/data/ --logpath /data/log/mongod.log --fork
about to fork child process, waiting until server is ready for connections.
forked process: 291
child process started successfully, parent exiting

端口

lsof -i:27017
ps -ef|grep 291

进入控制台

mongo 

复制集

官网截图(大概意思类似主从,实现读写分离。优点可以自动切换)
在这里插入图片描述

启动方式:(或是-f)  重点是配置文件
编译安装没有配置文件:从rpm安装的主机上复制一份,并修改数据和日志目录位置
#验证命令
mongod --config /data/data/mongod.conf &
ps -ef|grep mongod
如果要搭建复制集(需要添加--replSet rs0 (rs0为名称) )
mongod --config /data/data/mongod.conf --replSet rs0 &

只在主节点上:
配置文件
rs.config = {_id:"rs0",members:[ {_id:0,host:"192.168.68.60:27017"}, 
{_id:1,host:"192.168.68.61:27017"}, {_id:2,host:"192.168.68.62:27017",
arbiterOnly:true} ] }

初始化
rs.initiate({_id : "rs0", members : [{_id : 0, host : "192.168.68.60:27017"},]})

添加
rs.add("192.168.68.61:27017")
rs.add("192.168.68.62:27017")

查看 ("ok" : 1,)才是正常的  目前是一主两从(PRIMARY  ;SECONDARY )
rs.status()
rs.isMaster()

db.hostInfo()   #主机信息

移除
rs.remove("192.168.68.61:27017")

测试

切换:
将Primary节点降级为Secondary节点 rs.stepDown()   

手动指定时间
myapp:PRIMARY> rs.stepDown(30)

主节点的提示符:
rs0:PRIMARY> 
从节点提示符:
rs0:SECONDARY>

重点:配置完成之后从库(SECONDARY节点)需要执行rs.slaveOk() 才可以提供读服务show dbs

补充

启动服务:
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongo.conf  &
关闭:
/usr/local/mongodb/bin/mongod --shutdown --config  /usr/local/mongodb/conf/mongo.conf
 netstat -antpl | grep 27017
登录(如果你开启看密码认证,就需要用到admin库)
方法一 use admin
db.auth('root','密码');
方法二 mongo --host 192.168.1.66:27017 -u root -p 密码 --authenticationDatabase admin

推荐方式:URI  (这种也是程序的登录方式,可以自动寻找主库进行读写)
mongodb://dbabd:admin@192.168.90.111:27017,192.168.90.112:27017,
192.168.90.113:27017/?authSource=admin&replicaSet=rs0  (rs0为复制集名)

简单的CRUD

show databases  =  show dbs  
use 库名  进库   之后db. stats ()         //统计数据信息
show collections   看表

>use test
>db.getCollectionNames ()    //查询当前数据下所有的集合名称
db.createCollection('table01')  建表

db.table01.drop()  删除表

db.user00.insert({'name':'lei','age':18})  插入1条数据  在 MongoDB 中,当插入文档时,如果集合不存在,则 MongoDB 会隐式地自动创建集合,
WriteResult({ "nInserted" : 1 })

db.user00.find()  查看表

db.user00.insert({_id:1,'name':'lei','age':18})

rs0:PRIMARY> db.user00.find()
{ "_id" : ObjectId("5f342016772920173f6ea2b2"), "name" : "lei", "age" : 18 }
{ "_id" : 1, "name" : "lei", "age" : 19 }  自定义_id  (不建议)

 插入3条数据
db.user00.insert([
{"name":"lei1","age":1},
{"name":"lei2","age":2},
{"name":"lei3","age":3}
])

 插入N条数据
for (var i=1;i<=10;i++){
db.user00.insert({"name":"a"+i,"age":i})
}
db.user00.find().sort({name: 1}) //查询并排序

>db.test.find().limit(3)

创建单键索引的语法结构如下:
>db.collection.createlndex ( { key: 1 } )  //1 为升序,-1 为降序

复合索引可以支持在多个字段上进行的匹配查询,语法结构如下:
db.collection.createIndex ({ <key1> : <type>, <key2> : <type2>, ...})
需要注意的是,在建立复合索引的时候一定要注意顺序的问题,顺序不同将导致查询的结果也不相同。

如下语句创建复合索引:
>db.records.createIndex ({ "score": 1, "location.state": 1 })

查看复合索引的查询计划的语法如下:
>db.records.find({score:1034, "location.state" : "NY"}).explain()

本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值