Docker-compose部署mongodb分片集群 + Docker部署MongoDB + CentOS安装MongoDB

本文详细介绍了如何使用Docker安装MongoDB,通过Docker-compose部署分片集群,包括配置文件、yaml文件、key.file文件的生成,以及MongoDB服务器设置、账号密码管理和数据库分片。同时,还涵盖了数据库性能监控、Balancer进程的管理以及在CentOS主机上安装MongoDB的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Docker安装mongodb

拉取镜像

docker pull mongo

创建Mongo容器

docker run -itd --name mymongo \
-p 27017:27017 \
-e TZ=Asia/Shanghai \
--privileged \
-v /dockerDeploy/mongodb/db/:/data/db \
--restart always \
mongo --auth
docker run -itd --name mongodb  --restart=always -p 27017:27017 -v /home/mongo/data:/data/db  -v /home/mongo/conf:/data/configdb  -v /home/mongo/logs:/data/log/  mongo:4.0.5  -f /data/configdb/mongod.conf --bind_ip_all  
# -v 指定配置文件启动
# --bind_ip_all 允许所以IP访问
# ----restart=always  Docker服务重启容器也启动
# --privileged  拥有真正的root权限

–auth 带授权验证的容器

–restart unless-stopped 不管状态码为多少 自动重启

–restart always 总是自动重启

-v /etc/localtime:/etc/localtime:ro 时区设置

-e TZ=Asia/Shanghai

开启密码访问验证。

  • 直接使用docker命令进入容器
docker exec -it mongodb bash
  • 进入后输入mongo命令进入mongo数据库
root@510533585ae0:/# mongo
MongoDB shell version v4.2.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session {
    "id" : UUID("68c0fa27-a2e5-4155-9607-1c1b34d0906a") }
MongoDB server version: 4.2.0
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
  • 输入命令进入admin数据库
use admin
  • 创建一个用户
db.createUser({
    
    user: 'root', 
    pwd: 'kaide0630', 
    roles: [ {
    role: "root", db: "admin" } ] });
  • 校验用户 返回1 正确
db.auth("root","kaide0630")
  • 创建索引
# 装mongodb的时候要加索引

db.hisdata.createIndex( {
    deviceId: 1,mode:-1,time:1}, {
   background: true, sparse: true } )
db.hisdata.createIndex( {
    deviceId: 1,time:1}, {
   background: true, sparse: true } )
db.hisdata.createIndex( {
    time:1}, {
   background: true, sparse: true } )
  • 修改数据库密码加密方式
use mysql;

alter user 'root’@'%' identified with mysql_native_password by ‘rootpwd123’; 

flush privileges;
  • 退出
exit

role后面的参数参考,可根据时间情况选择:

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

之后可以创建普通用户执行如下三条语句即可:

use test

db.createUser({
    
	user: 'test', 
	pwd:'test', 
	roles: [{
   
		role:"readWrite",
		db:"testdb"
	}]
});

db.auth("test","test")
  • mongodb 导出数据

    mongoexport  -ufengbo -p qwert12345!  -d fbdata3 -c zcdata --type=csv -o /iotdocker/mongoback/zcdata.dat --fields devicedId,time,content
    

2、Docker-compose部署mongodb分片集群

2.1 配置文件

# docker挂载了配置文件  可不创建vim /etc/mongodb/config.conf
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /data/db
  journal:
    enabled: true
  directoryPerDB: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 8
      directoryForIndexes: true

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值