[MySQL] 서버에서 읽기만 가능하게 설정 하기 read_only
마스터 슬레이브 구조에선 마스터에서만 쓰기 기능이 되고
슬레이브에선 읽기 기능만 사용하는 형태로 많이 사용합니다.
슬레이브에서 쓰기 기능이 있다면 마스터와의 데이터 차이 때문에 문제가 발생합니다.
물론 데이터베이스를 지정해서 서로가 슬레이브 역활과 마스터 역활을 하게 설정 하기도 합니다.
여기선 이런 부분은 아니고 마스터와 하위에 슬레이브가 여러대 있는 구조를 말합니다.
아래와 같이 설정을 해주면 됩니다. 서버가 다시 시작해도 적용을 시키기 위해선 환경설정 파일에 명시를 해줘야 합니다.
/etc/my.cnf
read_only = 1
접속하여 설정 하는 방법은 임시로 설정하는 기능 입니다.
mysql > SET GLOBAL read_only=1;
확인하기
SELECT @@global.read_only;
root 유저로 접속하면 다 될거예요
그렇기 때문에 슬레이브는 root 권한이 없는 유저로 접속해야 합니다.
* 프로그램에서 처리가 필요한 경우 참고
슬레이브 서버 업데이트, 인서트, 삭제 금지시켜 잘못된 쿼리 사용하지 못하게 > PHP