docker-mariadb-galera 部署 - mysql 集群 系统软件 mysql


https://hub.docker.com/r/bitnami/mariadb-galera

https://github.com/bitnami/bitnami-docker-mariadb-galera/releases


docker run -d  -p 3371:3306 --name mariadb-galera-1  -h db01  --privileged=true --user=root --restart=always \

  -v /etc/localtime:/etc/localtime:ro  \

  -e MARIADB_GALERA_CLUSTER_BOOTSTRAP=yes \

  -e MARIADB_GALERA_CLUSTER_NAME=galera \

  -e MARIADB_GALERA_MARIABACKUP_USER=galera \

  -e MARIADB_GALERA_MARIABACKUP_PASSWORD=wdqdmm@g \

  -e MARIADB_ROOT_PASSWORD=wdqdmm@r \

  -e MYSQL_ALLOW_EMPTY_PASSWORD=no \

  -e MARIADB_EXTRA_FLAGS='--max-connect-errors=2000 --max_connections=20000' \

  -e MARIADB_REPLICATION_USER=slave \

  -e MARIADB_REPLICATION_PASSWORD=wdqdmm@s \

  -e MARIADB_CHARACTER_SET=utf8mb4 \

  -e MARIADB_COLLATE=utf8mb4_general_ci \

  -v /data/file:/data/file/ \

  -v /data/docker/mysql/mariadb/my_custom.cnf:/opt/bitnami/mariadb/conf/bitnami/my_custom.cnf  \

  -v /data/db/galera01:/bitnami/mariadb/data  \

  -v /data/file/logs/galera01:/opt/bitnami/mariadb/logs \

  bitnami/mariadb-galera:latest

  

  docker run -d  -p 3372:3306 --name mariadb-galera-2  -h db02  --privileged=true --user=root --restart=always  --link mariadb-galera-1:galera\

  -v /etc/localtime:/etc/localtime:ro  \

  -e MARIADB_GALERA_CLUSTER_BOOTSTRAP=yes \

  -e MARIADB_GALERA_CLUSTER_NAME=galera \

  -e MARIADB_GALERA_CLUSTER_ADDRESS=gcomm://galera:4567,0.0.0.0:4567 \

  -e MARIADB_GALERA_MARIABACKUP_USER=galera \

  -e MARIADB_GALERA_MARIABACKUP_PASSWORD=wdqdmm@g \

  -e MARIADB_ROOT_PASSWORD=wdqdmm@r \

  -e MYSQL_ALLOW_EMPTY_PASSWORD=no \

  -e MARIADB_EXTRA_FLAGS='--max-connect-errors=2000 --max_connections=20000' \

  -e MARIADB_REPLICATION_USER=slave \

  -e MARIADB_REPLICATION_PASSWORD=wdqdmm@s \

  -e MARIADB_CHARACTER_SET=utf8mb4 \

  -e MARIADB_COLLATE=utf8mb4_general_ci \

  -v /data/file:/data/file/ \

  -v /data/docker/mysql/mariadb/my_custom.cnf:/opt/bitnami/mariadb/conf/bitnami/my_custom.cnf  \

  -v /data/db/galera02:/bitnami/mariadb/data  \

  -v /data/file/logs/galera02:/opt/bitnami/mariadb/logs \

  bitnami/mariadb-galera:latest

  

docker exec -it mariadb-galera-1 /bin/bash

docker exec -it mariadb-galera-2 /bin/bash

   

cat /opt/bitnami/mariadb/conf/my.cnf


mkdir -p  /data/db/galera01/ /data/db/galera02/  /data/file/logs/galera01/ /data/file/logs/galera02/

chmod -R  /data/db/galera01/ /data/db/galera02/  /data/file/logs/

rm -rf /data/db/galera01/*  /data/db/galera02/*  /data/file/logs/galera01/*   /data/file/logs/galera02/* 


vim  /data/docker/mysql/mariadb/my_custom.cnf

[mysqld]
#skip-grant-tables
skip-name-resolve
default-storage-engine = innodb
max_allowed_packet=800M
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout  值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
init_connect = 'SET collation_connection = utf8mb4_general_ci'
character_set_filesystem = 'utf8mb4'
#设置client连接mysql时的字符集,防止乱码
init-connect = 'SET NAMES utf8mb4'
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-client-handshake = FALSE
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
skip-character-set-client-handshake=1   //使用服务端字符集
slow_query_log_file    = /opt/bitnami/mariadb/logs/mariadb-slow.log
long_query_time        = 10
#更详细的慢查询信息
log_slow_verbosity     = query_plan,explain
#开启记录没有使用索引查询语句
log-queries-not-using-indexes = on
#慢查询日志仅仅记录扫描行数超过行min_examined_row_limit的记录(不包括该参数值本身,是大于该参数值的扫描行)
min_examined_row_limit = 1000
log_bin                = /opt/bitnami/mariadb/logs/mysql-bin.log
expire_logs_days        = 5
max_binlog_size        = 800M


============================

#Setting up a multi-master cluster


1.引导集群

docker run --name mariadb-galera-0 \
  -e MARIADB_GALERA_CLUSTER_BOOTSTRAP=yes \
  -e MARIADB_GALERA_CLUSTER_NAME=my_galera \
  -e MARIADB_GALERA_MARIABACKUP_USER=my_mariabackup_user \
  -e MARIADB_GALERA_MARIABACKUP_PASSWORD=my_mariabackup_password \
  -e MARIADB_ROOT_PASSWORD=my_root_password \
  -e MARIADB_USER=my_user \
  -e MARIADB_PASSWORD=my_password \
  -e MARIADB_DATABASE=my_database \
  bitnami/mariadb-galera:latest


2.将节点添加到集群中

docker run --name mariadb-galera-1 \
  -e MARIADB_GALERA_CLUSTER_NAME=my_galera \
  -e MARIADB_GALERA_CLUSTER_ADDRESS=gcomm://mariadb-galera \
  -e MARIADB_GALERA_MARIABACKUP_USER=my_mariabackup_user \
  -e MARIADB_GALERA_MARIABACKUP_PASSWORD=my_mariabackup_password \
  bitnami/mariadb-galera:latest


3.Configuration file

 -v /path/to/my_custom.cnf:/opt/bitnami/mariadb/conf/my_custom.cnf:ro

-v /path/to/mariadb-persistence:/bitnami/mariadb \


vim /opt/bitnami/mariadb/conf/my_custom.cnf

[mysqld]
max_allowed_packet=500M



cat docker-compose.yml

version: '2'
services:
  mariadb-galera:
    image: 'docker.io/bitnami/mariadb-galera:10.3-debian-10'
    ports:
      - '3306:3306'
      - '4444:4444'
      - '4567:4567'
      - '4568:4568'
    volumes:
      - 'mariadb_galera_data:/bitnami/mariadb'
    environment:
      # ALLOW_EMPTY_PASSWORD is recommended only for development.
      - ALLOW_EMPTY_PASSWORD=yes


cat docker-compose.yml

version: '3.7'
services:
  mariadb-galera:
    container_name: ${MARIADB_GALERA_NAME}
    build:
      context: .
      args:
        MARIADB_GALERA_TAG: ${MARIADB_GALERA_TAG}
    restart: always
    networks:
      - default
    environment:
      #MARIADB_EXTRA_FLAGS: '--max-connect-errors=1000 --max_connections=155'
      ALLOW_EMPTY_PASSWORD: ${MARIADB_GALERA_ALLOW_EMPTY_PASSWORD}
      MARIADB_ROOT_USER: ${MARIADB_GALERA_ROOT_USER}
      MARIADB_ROOT_PASSWORD: ${MARIADB_GALERA_ROOT_PASSWORD}
      MARIADB_USER: ${MARIADB_GALERA_USER}
      MARIADB_PASSWORD: ${MARIADB_GALERA_PASSWORD}
      MARIADB_DATABASE: ${MARIADB_GALERA_DATABASE}
      MARIADB_GALERA_CLUSTER_BOOTSTRAP: 'yes'
      MARIADB_GALERA_CLUSTER_NAME: ${MARIADB_GALERA_CLUSTER_NAME}
      MARIADB_GALERA_CLUSTER_ADDRESS: ${MARIADB_GALERA_CLUSTER_ADDRESS}
      MARIADB_GALERA_MARIABACKUP_USER: ${MARIADB_GALERA_MARIABACKUP_USER}
      MARIADB_GALERA_MARIABACKUP_PASSWORD: ${MARIADB_GALERA_MARIABACKUP_PASSWORD}
  mariadb-galera-slave-1:
    container_name: ${MARIADB_GALERA_NAME}-slave-1
    build:
      context: .
      args:
        MARIADB_GALERA_TAG: ${MARIADB_GALERA_TAG}
    restart: always
    depends_on:
      - mariadb-galera
    links:
      - mariadb-galera:${MARIADB_GALERA_NAME}
    networks:
      - default
    environment:
      MARIADB_GALERA_CLUSTER_NAME: ${MARIADB_GALERA_CLUSTER_NAME}
      MARIADB_GALERA_CLUSTER_ADDRESS: ${MARIADB_GALERA_CLUSTER_ADDRESS}
      MARIADB_GALERA_MARIABACKUP_USER: ${MARIADB_GALERA_MARIABACKUP_USER}
      MARIADB_GALERA_MARIABACKUP_PASSWORD: ${MARIADB_GALERA_MARIABACKUP_PASSWORD}


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回