Woopii Vyeolog

[Docker] mariadb master slave 세팅 본문

Docker

[Docker] mariadb master slave 세팅

WooPii 2024. 2. 27. 17:01
  • docker 명령어

https://woopi1087.tistory.com/104

 

[Docker] 명령어 모음

명령어 모음 내용 명령어 예시 버전 확인 docker -v 다운받은 이미지 조회 docker images 이미지 다운 docker pull {이미지} docker pull mariadb:latest 컨테이너 생성 docker create {이미지} docker create -p 13306:3306 --nam

woopi1087.tistory.com

  • docker mariadb 설치

https://woopi1087.tistory.com/105

 

[Docker] docker Mariadb 설치

docker 명령어 https://woopi1087.tistory.com/104 mariadb 생성 mariadb 이미지 pull docker pull mariadb:latest 다운로드한 이미지 정보 보기 docker scout quickview mariadb:latest 이미지로 컨테이너 생성 및 실행 docker run \ -d \

woopi1087.tistory.com


 master DB 세팅

  1. 생성 및 기본 마리아 DB 관련은 위 링크 참고합니다
  2. 다음 명령어를 입력합니다.
    docker run -d --name local_mariadb_master -p 13306:3306 -v ./master/data:/var/lib/mysql -v ./master/config:/etc/mysql/conf.d -e MARIADB_ROOT_PASSWORD=1234 mariadb:latest
  3. my.cnf 설정
    mariadb 컨테이너 안에 있는 '/etc/mysql/conf.d' 에 링크가 걸린 master/config 디렉토리 안에
    my.cnf 만들어서 아래 설정을 넣습니다 (log-bin 파일 설정,  server-id 설정)
    [mysqld]
    log-bin=mysql-bin
    server-id=1
  4. 컨테이너 접속
    docker exec -it local_mariadb_master /bin/bash

  5. mariadb 로그인
    mariadb -u root -p

  6. 로그인 하다가 아래 에러가 뜨면 권한 수정 후 docker 재시작 합니다.
    [ MYSQL ] World-writable config file '/etc/my.cnf' is ignored
    권한 수정 : chmod 755 /etc/mysql/conf.d/my.cnf
    컨테이너 나간 후 docker 재시작 : docker restart local_mariadb_master 

    log_bin 설정 확인 명령어
    ## show variables like 'log_bin';

  7. 다시 mariadb 접속, 로그인 후 아래 쿼리 수행합니다
    create database test;
    create user 'repluser'@'%' identified by '1234';
    grant all privileges on test.* to 'repluser'@'%' identified by '1234';
    grant replication slave on *.* to 'repluser'@'%';
    flush privileges;​

slave DB 세팅

  1. 생성 및 기본 마리아 DB 관련은 위 링크 참고합니다
  2. 다음 명령어를 입력합니다.
    docker run -d --name local_mariadb_slave -p 13307:3306 -v ./slave/data:/var/lib/mysql -v ./slave/config:/etc/mysql/conf.d -e MARIADB_ROOT_PASSWORD=1234 --link local_mariadb_master mariadb:latest
  3. my.cnf 설정
    mariadb 컨테이너 안에 있는 '/etc/mysql/conf.d' 에 링크가 걸린 slave/config 디렉토리 안에
    my.cnf 만들어서 아래 설정을 넣습니다. 
    [mysqld]
    log-bin=mysql-bin
    server-id=2
    relay-log=relaylog
    log-slave_updates=1
    read_only = 1

  4. mariadb 접속,로그인 합니다 (master DB 세팅시와 동일 과정)
  5. 다음 쿼리를 수행합니다.
    create database test;
    create user 'repluser'@'%' identified by '1234';
    grant all privileges on test.* to 'repluser'@'%' identified by '1234';
    flush privileges;


master-slave 연동

  1. master 컨테이너 접속하여
    다음과 같은 명령어로 mysql-bin 파일 명과 position을 확인해야합니다.
    SHOW MASTER STATUS\G;
  2. slave에 접속하여 조회한 정보를 토대로 다음과 같이 설정합니다.
    위 master status에서 File과 position을 확인하여 

    MASTER_LOG_FILE, MASTER_LOG_POS에 세팅합니다.
    CHANGE MASTER TO
    MASTER_HOST='local_mariadb_master',
    MASTER_USER='repluser',
    MASTER_PASSWORD='1234',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=1089;
  3. slave 시작
    start slave;

  4. 설정 확인
    SHOW SLAVE STATUS\G;

Last_Errno 는 0,

Last_IO_Errnork 0 이면

설정이 완료된것 입니다.

 

 

 

 

 

참고


https://velog.io/@busybean3/Docker-MariaDB%EC%9D%98-Master-Slave-%EC%84%A4%EC%A0%95

 

Docker MariaDB의 Master-Slave 수동설정

MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따른다. 오라클 소유의 현재 불확실한 MySQL의 라이선스 상태에 반

velog.io

https://firststep-de.tistory.com/21

 

[DataBase] [Docker] MariaDB replication DB 설정을 알아보자. 🐳 [2]

이전 포스팅은 Master-Slave 구조를 가지는 Database를 도커를 통해서 수동설정하는 방법을 알아보았습니다. 2021.07.12 - [분류 전체보기] - [DataBase] [Docker] MariaDB replication DB 설정을 알아보자. 🐳 [DataBase]

firststep-de.tistory.com

 

'Docker' 카테고리의 다른 글

[Docker] docker Mariadb 설치  (0) 2024.02.23
[Docker] 명령어 모음  (0) 2024.02.23
[Docker] 명령어 자동 완성 플러그인 설치 (mac)  (0) 2024.02.22
[Docker] mac에서 docker 설치  (0) 2024.02.22
[Docker] 컨테이너끼리 통신  (0) 2022.09.01
Comments