기술 가이드

MySQL 복제: 슬레이브 구성

4 min read 데이터베이스 업데이트됨 14 Oct 2025
MySQL 슬레이브 구성 가이드
MySQL 슬레이브 구성 가이드

이 가이드는 MySQL 마스터-슬레이브 복제에서 슬레이브 서버(server2)를 설정하는 실무 절차를 설명합니다. 슬레이브 설정 파일 편집, 빈 데이터베이스 생성, 덤프 가져오기, CHANGE MASTER 명령으로 마스터 연결, SSL 옵션 확인과 상태 점검까지 단계별로 안내합니다.

개요

이 문서는 서버2를 MySQL 슬레이브로 구성하는 방법을 다룹니다. 필요한 작업은 다음과 같습니다.

  • /etc/mysql/my.cnf의 [mysqld] 섹션에서 서버 아이디와 복제 관련 설정 추가
  • MySQL 재시작
  • 빈 데이터베이스 생성
  • 스냅샷(snapshot.sql) 가져오기
  • CHANGE MASTER TO로 마스터 정보 등록(SSL 포함 가능)
  • START SLAVE로 복제 시작 후 SHOW SLAVE STATUS로 상태 확인

중요: server-id 값은 마스터와 달라야 합니다. 동일하면 복제가 실패합니다.

사전 요구사항

  • 마스터에서 복제용 사용자를 생성하고 권한을 부여했을 것
  • 마스터에서 SHOW MASTER STATUS; 실행 시 얻은 로그 파일명과 위치 정보를 기록해 두었을 것
  • (SSL 사용 시) 슬레이브에 필요한 인증서(ca-cert.pem, client-cert.pem, client-key.pem)를 배치했을 것

슬레이브 구성 단계

  1. /etc/mysql/my.cnf 편집

서버2에서 [mysqld] 섹션에 다음 설정이 있는지 확인하거나 추가합니다. server-id는 마스터와 달라야 합니다.

server2:

vi /etc/mysql/my.cnf
[...]
server-id=2
master-connect-retry=60
replicate-do-db=exampledb
[...]

중요: server-id 값은 마스터와 유일해야 합니다.

  1. MySQL 재시작

설정을 저장한 뒤 MySQL을 재시작합니다.

/etc/init.d/mysql restart
  1. 빈 데이터베이스 생성

복제를 적용할 동일한 데이터베이스 이름으로 빈 데이터베이스를 만듭니다. 여기서는 exampledb를 사용합니다.

mysql -u root -p
CREATE DATABASE exampledb;  
quit;
  1. 마스터에서 생성한 덤프(snapshot.sql) 가져오기

슬레이브에서 마이그레이션용 스냅샷을 가져옵니다. 먼저 슬레이브 IO를 멈추고 덤프를 로드합니다.

/usr/bin/mysqladmin --user=root --password=yourrootsqlpassword stop-slave  
cd /tmp  
mysql -u root -pyourrootsqlpassword exampledb < snapshot.sql
  1. CHANGE MASTER TO로 마스터 연결 설정

MySQL에 다시 접속한 뒤, 마스터에서 얻은 SHOW MASTER STATUS; 결과를 기반으로 CHANGE MASTER TO 명령을 실행합니다. 아래 예에서는 값들을 반드시 마스터에서 확인한 값으로 바꿔야 합니다.

mysql -u root -p
CHANGE MASTER TO MASTER_HOST='192.168.0.100', MASTER_USER='slave_user', MASTER_PASSWORD='slave_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=106, MASTER_SSL=1, MASTER_SSL_CA = '/etc/mysql/newcerts/ca-cert.pem', MASTER_SSL_CERT = '/etc/mysql/newcerts/client-cert.pem', MASTER_SSL_KEY = '/etc/mysql/newcerts/client-key.pem';

설정 항목 설명:

  • MASTER_HOST: 마스터의 IP나 호스트명(예: 192.168.0.100)
  • MASTER_USER: 마스터에서 부여한 복제 전용 사용자
  • MASTER_PASSWORD: 해당 사용자의 비밀번호
  • MASTER_LOG_FILE / MASTER_LOG_POS: 마스터에서 SHOW MASTER STATUS; 결과로 받은 파일과 위치
  • MASTER_SSL: SSL 연결 사용 여부(1 = 사용)
  • MASTER_SSL_CA / MASTER_SSL_CERT / MASTER_SSL_KEY: 슬레이브에 설치된 인증서 경로
  1. 슬레이브 시작 및 상태 확인

슬레이브를 시작합니다.

START SLAVE;

상태를 확인합니다.

SHOW SLAVE STATUS \G

정상 동작 시 출력에서 다음 두 항목이 Yes여야 합니다: Slave_IO_Running, Slave_SQL_Running. 또한 SSL을 사용하면 Master_SSL_Allowed, Master_SSL_CA_File, Master_SSL_Cert, Master_SSL_Key 값이 채워져 있어야 합니다.

다음 예시는 정상적인 SHOW SLAVE STATUS 출력 예입니다. (출력은 시스템에 따라 다를 수 있습니다.)

mysql> SHOW SLAVE STATUS \G  
************************* 1. row *************************  
               Slave_IO_State: Waiting for master to send event  
                  Master_Host: 192.168.0.100  
                  Master_User: slave_user  
                  Master_Port: 3306  
                Connect_Retry: 60  
              Master_Log_File: mysql-bin.000001  
          Read_Master_Log_Pos: 106  
               Relay_Log_File: mysqld-relay-bin.000002  
                Relay_Log_Pos: 251  
        Relay_Master_Log_File: mysql-bin.000001  
             Slave_IO_Running: Yes  
            Slave_SQL_Running: Yes  
              Replicate_Do_DB: exampledb  
          Replicate_Ignore_DB:  
           Replicate_Do_Table:  
       Replicate_Ignore_Table:  
      Replicate_Wild_Do_Table:  
  Replicate_Wild_Ignore_Table:  
                   Last_Errno: 0  
                   Last_Error:  
                  Skip_Counter: 0  
          Exec_Master_Log_Pos: 106  
              Relay_Log_Space: 407  
              Until_Condition: None  
               Until_Log_File:  
                Until_Log_Pos: 0  
           Master_SSL_Allowed: Yes  
           Master_SSL_CA_File: /etc/mysql/newcerts/ca-cert.pem  
           Master_SSL_CA_Path:  
              Master_SSL_Cert: /etc/mysql/newcerts/client-cert.pem  
            Master_SSL_Cipher:  
               Master_SSL_Key: /etc/mysql/newcerts/client-key.pem  
        Seconds_Behind_Master: 0  
Master_SSL_Verify_Server_Cert: No  
                Last_IO_Errno: 0  
                Last_IO_Error:  
               Last_SQL_Errno: 0  
               Last_SQL_Error:  
1 row in set (0.00 sec)  
  
mysql>

문제가 없으면 MySQL 셸을 종료합니다.

quit;

점검 목록 (체크리스트)

관리자와 운영자가 단계별로 확인할 항목입니다.

  • master에서 SHOW MASTER STATUS; 결과를 기록했는가
  • server-id가 마스터와 충돌하지 않는가
  • replicate-do-db 같은 복제 필터가 올바르게 설정되었는가
  • snapshot.sql 파일이 정상적으로 로드되었는가
  • CHANGE MASTER TO 명령의 MASTER_LOG_FILE/MASTER_LOG_POS 값이 정확한가
  • START SLAVE 후 Slave_IO_Running 및 Slave_SQL_Running이 Yes인가
  • SSL을 사용하면 인증서 경로와 권한이 올바른가

문제 해결 힌트

  • Slave_IO_Running 또는 Slave_SQL_Running이 Yes가 아니면 /var/log/syslog 또는 MySQL 로그를 확인하세요.
  • 권한 문제: MASTER_USER에 REPLICATION SLAVE 권한이 있는지 확인합니다.
  • 포트/방화벽: 마스터의 3306 포트에 접근 가능한지 확인합니다.
  • 로그 포지션 오류: snapshot을 생성할 때의 마스터 로그 포지션과 슬레이브에 설정한 위치가 일치하는지 확인하세요.

중요: SSL을 사용한 연결에서 인증서 경로가 잘못되면 연결이 실패합니다. 인증서 파일 권한(소유자 및 읽기 권한)도 확인하세요.

역할별 체크리스트

DBA:

  • 마스터에서 복제 계정 생성 및 권한 부여
  • 스냅샷 생성 시 일관성(FLUSH TABLES WITH READ LOCK 또는 mysqldump –single-transaction) 확보

시스템 관리자:

  • 슬레이브 서버에 인증서 배포
  • 방화벽/네트워크 설정 확인
  • MySQL 서비스 모니터링 설정

운영자:

  • 슬레이브 상태 정기 점검(특히 Seconds_Behind_Master)
  • 데이터 검증을 위한 샘플 업데이트 테스트 수행

테스트 케이스(간단)

  1. 마스터에서 exampledb에 테스트 테이블 생성 및 데이터 삽입
  2. 슬레이브에서 동일한 테이블과 데이터가 복제되어 나타나는지 확인
  3. 네트워크 장애 복구 후 슬레이브가 자동으로 재동기화되는지 확인

보안 및 권장 사항

  • 가능하면 SSL을 사용해 마스터-슬레이브 통신을 보호하세요.
  • 복제 전용 계정에 최소 권한만 부여하세요.
  • 중요 데이터는 복제 이전에 백업을 보관하세요.

요약

이제 exampledb에 대한 모든 변경 사항은 마스터에서 슬레이브로 복제됩니다. 설정 검증을 위해 간단한 업데이트를 수행하고 SHOW SLAVE STATUS로 상태를 확인하세요.

요약 포인트:

  • server-id는 고유해야 합니다.
  • CHANGE MASTER TO의 로그 파일과 위치는 마스터에서 확인한 값을 사용하세요.
  • START SLAVE 후 Slave_IO_Running과 Slave_SQL_Running이 Yes여야 합니다.

링크

1줄 용어집

  • 마스터: 복제의 원본 서버
  • 슬레이브: 마스터의 변경을 적용받는 서버
  • MASTER_LOG_POS: 마스터 바이너리 로그의 특정 위치
공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Firestick 탈옥: 단계별 안전 가이드
가이드

Firestick 탈옥: 단계별 안전 가이드

Gboard에 전용 숫자 행 추가하는 방법
안드로이드

Gboard에 전용 숫자 행 추가하는 방법

바탕화면 우클릭에 전원 계획 메뉴 추가하기 — Windows 11/10
Windows 튜토리얼

바탕화면 우클릭에 전원 계획 메뉴 추가하기 — Windows 11/10

Fallout 76 패킷 손실 완전 해결 가이드
게임 가이드

Fallout 76 패킷 손실 완전 해결 가이드

Android 연락처·데이터 복구 가이드
안드로이드

Android 연락처·데이터 복구 가이드

프라이빗 인스타그램 릴 다운로드 가이드
가이드

프라이빗 인스타그램 릴 다운로드 가이드