<OOO>

replication 트러블 슈팅 본문

MYSQL

replication 트러블 슈팅

<OOO> 2020. 5. 15. 02:03
728x90

학교 과제로 replication이 나왔는데 예상치 못한 오류가 뜬다;;;

다른 사람들은 잘 되는데 왜 나만 그럴까

생각하며 열심히 구글링 하던 도중 오류를 해결하는 방법을 찾았다.

 

1. 연결할 수 없다고 뜨는 오류

Last_IO_Error: error connection to master 'replication@192.168.131.131:3306' - retry-time: 60 retries: 1

 

이렇게 뜨는 오류같은 경우 master과 slave의 방화벽을 열어주면 해결된다.

방화벽 여는 방법은

iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT --> 밖에서 안으로 들어오는 패킷에 해당

iptables -I OUTPUT 1 -p tcp --dport 3306 -j ACCEPT --> 안에서 밖으로 나가는 패킷에 해당

 

방화벽 열고 slave에서 master로 원격접속을 해본다.

mysql -h [master ip] -u replication -p 

패스워드 입력 후 잘 접속되는지 확인.

 

자. 방화벽을 열었다. 그럼 이제 되겠지???

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work

 

하....

트러블 슈팅 할 때마다 느끼는거지만, 힘들다 힘들어..

이 오류는 UUID가 같아서 연결이 안된다는 오류이다.

만일, 기존에 있는 DB 서버를 그대로 복사해서 replication을 하려는 경우 이런 오류가 뜰 가능성이 있다.

왜냐고? 같은 UUID 이거든!

 

UUID를 변경을 해줘야하는데, mysql server의 UUID는 auto.cnf에 정의되어 있는데, 환경마다 auto.cnf의 위치가 조금씩 달라질 수 있으므로 find / -name auto.cnf를 해준다.

그러면 auto.cnf의 경로가 나오는데, 그걸 지워준다.(혹시 모를 상황에 대비하여 UUID를 다른 곳에 메모 해놓는다.)

그리고 mysql 재시작!!!!

 

된다... 이거 하나 할려고 2시간을 투자한것같다....

 

얼른 과제하러 가야겠다..

 

Comments