
서버 X, Y, Z라는 세 개의 서버가 있습니다.
X(innodb DB)에 기본 mysql DB가 있습니다.
이제 X에서 Y까지 Master-Slave를 만들었습니다. 여기에서는 모든 것이 잘 작동합니다.
이제 Y를 Z의 마스터로 설정합니다.
Z(세 번째 서버)에서 슬레이브 상태를 표시할 때
슬레이브 상태 표시\G Slave_IO_State: 마스터가 이벤트를 보낼 때까지 기다리는 중 ... Slave_IO_Running: 예 Slave_SQL_Running: 예 ... Seconds_Behind_Master: 0
하지만 데이터가 동기화되지 않았고 Y에서 Z로 아무것도 이동되지 않았습니다. 원인이 무엇인지 알 수 있나요??
편집하다
서버 Y의 my.cnf에는 다음과 같은 conf가 있습니다.
로그-슬레이브 업데이트=ON 로그빈=mysql-bin
하지만 '%slave%'와 같은 쇼 변수에는
'%slave%'와 같은 변수를 표시합니다. +---------------+--------+ | 변수명 | 가치 | +---------------+--------+ | 초기화_슬레이브 | | | 로그_슬레이브_업데이트 | 꺼짐 | | 슬레이브_압축_프로토콜 | 꺼짐 | | 슬레이브_exec_모드 | 엄격 | | Slave_load_tmpdir | /tmp | | Slave_net_timeout | 3600 | | Slave_skip_errors | 꺼짐 | | Slave_transaction_retries | 10 | | sql_slave_skip_counter | | +---------------+--------+
당신의 도움을 주셔서 감사합니다
답변1
Y를 시작했는지 확인하십시오.--로그-슬레이브-업데이트X에서 받은 업데이트가 Y에 의해 바이너리 로그에 기록되도록 하는 옵션입니다.
서버 Y의 my.cnf에는 다음과 같은 conf가 있습니다.
log-slave-updates=ON
스위치 값 대신 부울 값을 사용하십시오.
log-slave-updates=true
결과:
mysql> show global variables like '%slave%';
+---------------------------+--------+
| Variable_name | Value |
+---------------------------+--------+
| init_slave | |
| log_slave_updates | ON |
| slave_compressed_protocol | OFF |
| slave_exec_mode | STRICT |
| slave_load_tmpdir | /tmp |
| slave_net_timeout | 3600 |
| slave_skip_errors | OFF |
| slave_transaction_retries | 10 |
| sql_slave_skip_counter | |
+---------------------------+--------+
9 rows in set (0.00 sec)