美文网首页
Docker集群部署bitnami/mysql

Docker集群部署bitnami/mysql

作者: Pasca | 来源:发表于2021-12-06 14:36 被阅读0次
    Mysql安装
    1. 镜像

      为了方便,我直接选择了bitnami/mysql:5.7.36,说明文档:https://registry.hub.docker.com/r/bitnami/mysql

    2. docker-compose.yml

      version: '3.8'
      services:
        mysql-master:
          image: bitnami/mysql:5.7.36
          container_name: mysql-master
          restart: always
          ports:
            - '3306:3306'
          volumes:
            # 初始化数据库,只能在master节点,不需要可以删除
            - ./init.sql:/docker-entrypoint-initdb.d/init.sql
            # node1的数据卷映射
            - ./node1:/bitnami/mysql/data
          environment:
            - BITNAMI_DEBUG=true
            # 时区
            - TZ=Asia/Shanghai
            # 默认编码集
            - MYSQL_CHARACTER_SET=utf8mb4
            - MYSQL_COLLATE=utf8mb4_general_ci
            # Root密码
            - MYSQL_ROOT_PASSWORD=123456
            # 主从复制用户
            - MYSQL_REPLICATION_USER=repl-user
            # 主从复制密码
            - MYSQL_REPLICATION_PASSWORD=123456
            # 主从复制角色
            - MYSQL_REPLICATION_MODE=master
        mysql-slave:
          image: bitnami/mysql:5.7.36
          container_name: mysql-slave
          restart: always
          volumes:
            - ./node2:/bitnami/mysql/data
          ports:
            - '3307:3306'
          depends_on:
            # 分开部署可以去除该项
            - mysql-master
          environment:
            - BITNAMI_DEBUG=true
            # 时区
            - TZ=Asia/Shanghai
            # 默认编码集
            - MYSQL_CHARACTER_SET=utf8mb4
            - MYSQL_COLLATE=utf8mb4_general_ci
            # ROOT用户
            - MYSQL_ROOT_USER=root
            # Root密码
            - MYSQL_ROOT_PASSWORD=123456
            # 主从复制用户
            - MYSQL_REPLICATION_USER=repl-user
            # 主从复制密码
            - MYSQL_REPLICATION_PASSWORD=123456
            # 主从复制角色
            - MYSQL_REPLICATION_MODE=slave
            # 主节点IP地址
            - MYSQL_MASTER_HOST=192.168.246.135
            # 主节点IP端口
            - MYSQL_MASTER_PORT_NUMBER=3306
            # 主节点ROOT用户
            - MYSQL_MASTER_ROOT_USER=root
            # 主节点ROOT密码
            - MYSQL_MASTER_ROOT_PASSWORD=123456
      
    3. 部署

      1. 将准备好的文件全部上传至服务器,如以下目录

        .
        ├── docker-compose.yml # docker-compose
        ├── init.sql # 初始化SQL
        ├── node1 # node1数据卷
        └── node2 # node2数据卷
        
      2. 授权non-root

        我们选择的镜像有个特殊的地方,他在运行的时候不是root用户,而是一个non-root用户1001,因此我们需要为数据卷授权。

        注意:node1,node2文件夹,在下次需要重新初始化数据库的时候,需要删除,再创建,授权。这样才会执行初始化SQL

        $ chown -R 1001 ./node1
        $ chown -R 1001 ./node1
        $ tree -ug
        .
        ├── [root     root    ]  docker-compose.yml
        ├── [root     root    ]  init.sql
        ├── [1001     root    ]  node1
        └── [1001     root    ]  node2
        
      3. 启动容器

        docker compose up --detach --scale mysql-master=1 --scale mysql-slave=1

    相关文章

      网友评论

          本文标题:Docker集群部署bitnami/mysql

          本文链接:https://www.haomeiwen.com/subject/yangxrtx.html