• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

Slave 서버에서 Master 서버와 연결하는 명령어 입력하면 에러 발생 질문

23.12.02 16:50 작성 23.12.02 17:46 수정 조회수 194

0

Master-Slave Replication 구성하기 파트에서

4:52 영상을 보시면 Slave 서버에 Master 서버와 연결하는 작업 명령어가 있는데요.

 

먼저 Master 서버랑

 

# Replication user 생성 (db001 - Master)

CREATE USER 'repl'@'%' IDENTIFIED BY 'repl';

GRANT REPLICATION SLAVE ON . TO 'repl'@'%';

 

 

#Slave 서버 Replication 설정 (db002, db003 - Slave)

reset master;

CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_AUTO_POSITION=1;

start slave;

show slave status\G

 

 

Slave 서버에서 mysql 접속 후

 

CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_AUTO_POSITION=1;

 

해당 명령어를 입력 하게 되면 이런 에러가 발생됩니다.

 

ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

 

 

에러가 발생되는데 이유가 무엇일까요?

  1. 도커 내부 아이피 (Master 서버 db001) 172.17.0.2 체크

  2. Master 서버에 repl 유저 권한 추가 및 설정

  3. my.conf 파일 Master, Slave 서버 셋팅 확인 및 설정 값 체크

 

두가지 체크를 해보았지만 해결이 되지 않고 있네요...

원인이 무엇일까요?

 

답변 2

·

답변을 작성해보세요.

0

앙앙기모님의 프로필

앙앙기모

2023.12.20

conf 파일 컨테이너에 바인딩 시 my.cnf.db001 이런식으로 넘어가고 있지 않는지 확인해보세요. 저 같은 경우에는 my.cnf 로 바인딩하니 잘 되더라구요

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.04

안녕하세요, 인프런 AI 인턴입니다.

리나님, MySQL Replication 설정 중 발생하는 오류 문제에 대해 문의하셨군요. 에러 메시지 “ERROR 1794 (HY000)“는 Slave 서버의 --server-id가 설정되어 있지 않거나 초기화에 실패했다는 내용을 알려줍니다. 복제를 위해서 Master 서버와 Slave 서버 모두 고유한 server-id를 갖고 있어야 합니다.

문제 해결을 위해 다음 항목들을 확인해 보시기 바랍니다:

  1. Slave 서버의 my.cnf(my.ini) 설정 파일에서 server-id가 명시적으로 지정되어 있는지 확인하세요. 이 값은 Master 서버의 server-id와 달라야 합니다.

    [mysqld]
    server-id = 2
    

    각 Slave 서버는 고유한 server-id 값을 가져야 합니다.

  2. 설정 변경 후 MySQL 서버를 재시작했는지 확인하세요. 변경사항을 적용하기 위해선 서비스 재시작이 필요합니다.

  3. 이미 복제를 시도한 후라면, Slave 서버에서 RESET SLAVE;를 실행하여 복제 설정을 초기화한 후 다시 시도해 보세요.

  4. MySQL 로그 파일을 확인하여 추가적인 에러 메시지가 있는지 확인하세요. 로그 파일은 보통 /var/log/mysql/ 디렉토리나 /var/log/mysqld.log 파일에 있을 수 있습니다.

  5. CHANGE MASTER TO 명령 이전에 Replication 관련 권한과 설정이 Master 서버에서 올바르게 이루어졌는지, 사용자 ‘repl’이 제대로 생성되었는지 다시 한 번 확인해 보시기 바랍니다.

위의 항목들을 확인하시고 여전히 문제가 해결되지 않는다면, 다시 한 번 설정 파일과 권한 부여 과정을 자세히 살펴보시기 바랍니다. 때때로 미세한 설정의 오류나 접근 권한의 문제로 예상치 못한 에러가 발생할 수 있습니다.

참고가 되셨길 바랍니다. 추가적인 도움이 필요하시면 언제든 문의해 주세요.