docker-compose mysql replication 구성

|

docker-compose.yml


  mysqlMaster:
    image: mysql:8
    container_name: 'mysqlMaster'
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - /mnt/RAID5/docker-config/mysql/master/data:/var/lib/mysql
      - /mnt/RAID5/docker-config/mysql/master/config:/etc/mysql/conf.d
    environment:
      - TZ=Asia/Seoul
      - PGID=0
      - PUID=0
      - MYSQL_ROOT_PASSWORD={pwd}
      - MYSQL_USER={id}
      - MYSQL_PASSWORD={pwd}
    ports:
      - 3306:3306

    restart: always

  mysqlSlave:
    image: mysql:8
    container_name: 'mysqlSlave'
    command: --default-authentication-plugin=mysql_native_password
    volumes:
      - /mnt/RAID5/docker-config/mysql/slave/data:/var/lib/mysql
      - /mnt/RAID5/docker-config/mysql/slave/config:/etc/mysql/conf.d
    environment:
      - TZ=Asia/Seoul
      - PGID=0
      - PUID=0
      - MYSQL_ROOT_PASSWORD={pwd}
      - MYSQL_USER={id}
      - MYSQL_PASSWORD={pwd}
    ports:
      - 3307:3306
    restart: always
    links:
      - mysqlMaster
    depends_on:
      - mysqlMaster

 

master/config/my.cnf

[mysqld]
server-id=1
log-bin=mysql-bin

 

slave/config/my.cnf

[mysqld]
server-id=2
log-bin=mysql-bin


<master>

mysql> show master status;

File, Position column 값 확인

 

<slave>

mysql> stop slave;

mysql> CHANGE MASTER TO MASTER_HOST='mysqlMaster', MASTER_USER='{id}', MASTER_PASSWORD='{pwd}', MASTER_LOG_FILE='{File}', MASTER_LOG_POS={Position};

mysql> show slave status;

mysql> start slave;

 

# 모든 slave 설정 정보 삭제

mysql> reset slave all;

 

'Etc' 카테고리의 다른 글

docker-compose image update  (0) 2021.10.07
excel 두개열의 중복 비교  (0) 2019.10.07
chrome https로 강제 이동 막기  (0) 2018.11.26
windows cron - schtasks  (0) 2018.01.23
가타가나  (0) 2017.03.14
And