MySQL 복제 권한 부여 개요
MySQL에서 특정 사용자에게 복제(replication) 권한을 부여하려면 GRANT REPLICATION SLAVE 구문을 사용합니다. 이 권한은 주로 마스터-슬레이브 복제 환경을 구성할 때 슬레이브 서버가 마스터 서버에 접속하여 바이너리 로그를 읽을 수 있도록 하는 데 필수적입니다.
1단계: 기존 사용자 목록 확인
권한을 부여하기 전에 먼저 MySQL의 mysql.user 테이블에서 등록된 모든 사용자 이름과 호스트를 확인합니다.
mysql> select user,host from mysql.user;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Charlie | % | | Robert | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam | localhost | | Adam Smith | localhost | | Chris | localhost | | David | localhost | | James | localhost | | John | localhost | | John Doe | localhost | | Mike | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 22 rows in set (0.00 sec)
2단계: 복제 권한 부여하기
이제 GRANT REPLICATION SLAVE 구문을 사용하여 사용자 'Mike'에게 복제 권한을 부여해 보겠습니다. 여기서 *.*는 모든 데이터베이스와 모든 테이블에 대한 권한을 의미합니다.
mysql> GRANT REPLICATION SLAVE ON *.* TO 'Mike'@'localhost'; Query OK, 0 rows affected (0.20 sec)
3단계: 권한 부여 결과 확인
권한이 정상적으로 부여되었는지 확인하려면 SHOW GRANTS 명령어를 사용합니다.
mysql> SHOW GRANTS FOR 'Mike'@'localhost';
실행 결과는 다음과 같습니다.
+------------------------------------------------------+ | Grants for Mike@localhost | +------------------------------------------------------+ | GRANT REPLICATION SLAVE ON *.* TO `Mike`@`localhost` | +------------------------------------------------------+ 1 row in set (0.04 sec)
출력 결과를 보면 사용자 'Mike'@'localhost'에게 REPLICATION SLAVE 권한이 성공적으로 부여된 것을 확인할 수 있습니다.
참고 사항
복제 권한은 전역(global) 권한이므로 반드시 *.* 형태로 지정해야 하며, 특정 데이터베이스에만 부여할 수 없습니다. 또한 변경 사항을 즉시 적용하려면 FLUSH PRIVILEGES; 명령을 실행하는 것이 좋습니다.