MUMU

vuePress-theme-reco MUMU    2018 - 2023
MUMU MUMU

Choose mode

  • dark
  • auto
  • light
推荐
  • DevOps

    • kubernetes
    • docker
  • 其他

    • 博客
    • IDEA
分类
  • 记录
  • 生活
  • 笔记
标签
时间轴
关于
GitHub (opens new window)
author-avatar

MUMU

30

文章

36

标签

推荐
  • DevOps

    • kubernetes
    • docker
  • 其他

    • 博客
    • IDEA
分类
  • 记录
  • 生活
  • 笔记
标签
时间轴
关于
GitHub (opens new window)
  • 安装

    • Ubuntu安装docker
  • 使用

    • 数据库服务搭建容器化
  • 仓库搭建

    • 镜像仓库harbor搭建

数据库服务搭建容器化

vuePress-theme-reco MUMU    2018 - 2023

数据库服务搭建容器化

MUMU 2020-09-09 DockerMysqlRedisMongoDB

# 数据库服务搭建容器化

# mysql

sudo docker run -d \
--restart=always \
--name mysql \
-p 3306:3306 \
-v /data/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=xxxxxx \
mysql:5.7

-v 文件挂载:将mysql的/var/lib/mysql路径下的数据文件挂载至宿主机上的/data/mysql路径下

-e 环境变量:设置mysql中的环境参数MYSQL_ROOT_PASSWORD设置root账号的初始密码

# redis

# 准备redis.conf

# 密码
requirepass xxxxxx
# 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,
maxmemory 1024m
# 绑定的主机地址,你可以绑定单一接口(127.0.0.1只允许本机连接),如果没有绑定(开放ip),所有接口都会监听到来的连接
# bind 127.0.0.1
# 主从复制,只需要从节点配置即可
# slaveof <masterip> <masterport>

# 启动redis

sudo docker run -d \
--restart=always \
--name redis \
-p 6379:6379 \
-v /data/redis/data:/data \
-v /data/redis/redis.conf:/usr/local/etc/redis/redis.conf \
redis:4.0.8

-v1 文件挂载:将redis的/data路径下的数据文件挂载至宿主机上的/data/redis/data路径下

-v2 文件挂载:将redis的/usr/local/etc/redis/redis.conf路径下的redis配置文件挂载至宿主机上的/data/redis/redis.conf路径下,当然也可以在宿主机上先配置好redis.conf然后再覆盖容器里的redis.conf

# mongo

# 启动mongodb

sudo docker run -d \
--restart=always \
--name mongodb \
-p 27017:27017 \
-v /data/mongodb:/data/db \
mongo

-v 文件挂载:将redis的/data/db路径下的数据文件挂载至宿主机上的/data/mongodb路径下

# 配置mongodb

# 进入docker容器的mongo
sudo docker exec -it mongodb mongo
# 配置用户
> show dbs   # 显示所有数据库
> use admin  # 进入admin数据库
> db.createUser(
  {
    user: "admin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)     # 创建一个用户,身份是超级管理员

完成后会提示Successfully added user相关信息

> db.auth("admin","abc123")
1

若返回为1,则认证成功!现在,我们超级管理员也创建好了,可以为其他数据库创建用户了

# MongoDB基本的角色

1.数据库用户角色:read、readWrite; 2.数据库管理角色:dbAdmin、dbOwner、userAdmin; 3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4.备份恢复角色:backup、restore; 5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6.超级用户角色:root还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

其中MongoDB默认是没有开启用户认证的,也就是说游客也拥有超级管理员的权限。userAdminAnyDatabase:有分配角色和用户的权限,但没有查写的权限

在 GitHub 上编辑此页 (opens new window)
Last Updated: 2023/7/12 03:05:36