[MySQL] MySQL Replication Last_IO_Error : Access denied 이슈 해결

오형상·2024년 1월 5일
0

MySQL

목록 보기
2/3

현재 상황

Dockerfile 설정을 FROM mysql:latest 에서 FROM mysql:8.0으로 변경하였더니 Last_IO_Error : Access denied 가 발생하였다.

FROM mysql:8.0
# 호스트 머신의 ./master/my.cnf 파일을 새로운 이미지의 /etc/mysql/my.cnf 경로로 추가한다.
ADD ./master/my.cnf /etc/mysql/my.cnf

Master command COM_REGISTER_SLAVE failed: Access denied for user 'user'@'%' (using password: YES) (Errno: 1045)

해결 방법

replication 권한 관련 문제로 replication 권한 부여를 하면 해결 가능하다.

⚠ 특정 아이피만 가능하게 할경우 % 대신 IP입력

  1. master 연결
docker exec -it master bash

mysql -u root -p

위의 명령어 다음에 비밀번호 입력하면 연결 성공

  1. 권한 부여

MySQL 데이터베이스에서 복제(replication) 슬레이브(slave) 서버에 대한 권한을 부여하는 SQL 명령입니다. 이 명령은 마스터(master) 서버에서 실행되어 슬레이브 서버가 마스터 서버의 변경 사항을 복제할 수 있도록 허용합니다.

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_host' IDENTIFIED BY 'password';
  • replication_user는 슬레이브 서버에서 사용할 복제 사용자의 이름입니다.
  • slave_host는 슬레이브 서버의 호스트 주소입니다. (와일드카드(%)를 사용하여 모든 호스트로부터의 연결을 허용할 수 있습니다.)
  • password는 해당 사용자의 암호입니다.

아래와 같이 MySQL Replication 설정이 완료되었다.

0개의 댓글