Mongodb 安装部署

举报
kaliarch 发表于 2021/12/18 10:52:00 2021/12/18
【摘要】 一 yum安装 1.1 配置yum源cat >/etc/yum.repos.d/mongodb-enterprise.repo<<EOF[mongodb-enterprise]name=MongoDB Enterprise Repositorybaseurl=https://repo.mongodb.com/yum/redhat/\$releasever/mongodb-enterpris...

一 yum安装

1.1 配置yum源

cat >/etc/yum.repos.d/mongodb-enterprise.repo<<EOF
[mongodb-enterprise]
name=MongoDB Enterprise Repository
baseurl=https://repo.mongodb.com/yum/redhat/\$releasever/mongodb-enterprise/4.2/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
EOF

yum clean all
yum makecache

1.2 安装mongodb

# 安装
sudo yum install -y mongodb-enterprise

# 指定版本安装

二 源码安装

2.1 预安装软件

yum install cyrus-sasl cyrus-sasl-gssapi cyrus-sasl-plain krb5-libs libcurl libpcap lm_sensors-libs net-snmp net-snmp-agent-libs openldap openssl rpm-libs tcp_wrappers-libs

2.2 下载源码

# 访问https://www.mongodb.com/download-center?jmp=docs#enterprise,下载源码包

https://www.mongodb.com/download-center?jmp=docs#enterprise

2.3 解压

tar -zxvf mongodb-linux-*-4.2.0.tgz

三 使用

3.1 登录

sudo echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
sudo echo "never" >  /sys/kernel/mm/transparent_hugepage/defrag

# 启动服务
systemctl start mongod

#
mongo --username alice --password --authenticationDatabase admin --host mongodb0.examples.com --port 28015

mongo "mongodb://alice@mongodb0.examples.com:28015/?authSource=admin"

3.2 安全

# 配置文件启用安全/etc/mongod.conf
security:
  authorization: enabled
  
 

# 登录mongod

mongo
# 切到admin库
use admin
# 创建root用户
db.createUser(
  {
    user: "superuser",
    pwd: "mongodbadmin",
    roles: [ "root" ]
  }
)
# 查询用户
show users

# 通过shell关闭mongod服务

db.shutdownServer()

exit

# 重启mongod服务

show users  // 查看当前库下的用户

db.dropUser('testadmin')  // 删除用户

db.updateUser('admin', {pwd: '654321'})  // 修改用户密码

db.auth('admin', '654321')  // 密码认证

3.3 数据库默认角色

  1. 数据库用户角色:read、readWrite
  2. 数据库管理角色:dbAdmin、dbOwner、userAdmin
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
  4. 备份恢复角色:backup、restore
  5. 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
    dbAdminAnyDatabase
  6. 超级用户角色:root

四 GRUD

4.1 Create

如果插入的目标集合不存在,则自动创建改集合

db.collection.insertOne() New in version 3.2
db.collection.insertMany() New in version 3.2

![image-20190920131616600](/Users/xuel/Library/Application Support/typora-user-images/image-20190920131616600.png)

# 插入单条文档
db.stu.insertOne({
	"_id":0,
	"name":"xuelei",
	"age":33,
	"tag":["xuel"],
	"size":{
		"h":33,
		"w":22
	}
})
# 插入复合文档,将多重文档转换成列表插入
db.stu.insertMany([
{_id:0,name: "test0",age: 22},
{_id:1,name: "test1",age:33},
{_id:2,name: "test2",age:44,tags:["xuel"]}
])

4.2 Read

从集合中检索文档

db.collection.find()

![image-20190920132410584](/Users/xuel/Library/Application Support/typora-user-images/image-20190920132410584.png)

4.3 Update

db.collection.updateOne(<filter>, <update>, <options>)
db.collection.updateMany(<filter>, <update>, <options>)
db.collection.replaceOne(<filter>, <update>, <options>)

4.4 Delete

db.collection.deleteMany()
db.collection.deleteOne()
# 删除所有文档
db.inventory.deleteMany({})

参考链接

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。