이 가이드 에 따라 Percona Server 5.5에서 복제를 실행하고 read-only=1
슬레이브에 추가해야하는지 궁금했습니다.my.cnf
하고 있으며 읽기 전용으로 .
이 가이드는 사용자가 복제되도록 mysql 테이블에 대한 복제를 설정하지만 주로 슬레이브를 사용하여 mysqldump를 가져옵니다. 비상 상태에서 마스터로 재구성하면 쓰기가 가능해야한다고 생각하지 않습니다. 끊임없이?
이 가이드 에 따라 Percona Server 5.5에서 복제를 실행하고 read-only=1
슬레이브에 추가해야하는지 궁금했습니다.my.cnf
하고 있으며 읽기 전용으로 .
이 가이드는 사용자가 복제되도록 mysql 테이블에 대한 복제를 설정하지만 주로 슬레이브를 사용하여 mysqldump를 가져옵니다. 비상 상태에서 마스터로 재구성하면 쓰기가 가능해야한다고 생각하지 않습니다. 끊임없이?
답변:
슬레이브가 읽기 전용 인 경우 월드와 100 % 차폐되지 않습니다.
에 대한 MySQL 설명서에 따르면 read-only
이 변수는 기본적으로 꺼져 있습니다. 사용 가능한 경우, 서버는 SUPER 특권을 가진 사용자 또는 슬레이브 스레드가 수행 한 업데이트로부터 (슬레이브 서버에서) 업데이트를 허용하지 않습니다. 복제 설정에서 슬레이브 서버에서 read_only를 활성화하여 슬레이브가 클라이언트가 아닌 마스터 서버에서만 업데이트를 받도록하는 것이 유용 할 수 있습니다.
따라서 SUPER 특권을 가진 사람은 누구나 그러한 슬레이브에 대해 자유롭게 읽고 쓸 수 있습니다.
권한이없는 모든 사용자에게 SUPER 권한이 없는지 확인하십시오.
한 번에 모든 SUPER 권한을 취소하려면 Master and Slave에서이를 실행하십시오.
UPDATE mysql.user SET super_priv='N' WHERE user<>'root';
FLUSH PRIVILEGES;
슬레이브와 관련하여 이것은 SUPER 특권을 root
권한이없는 사람들이 다른 방식으로 제한되는 쓰기를 수행하는 것을 막고 방지 합니다.
나는 최근에 MySQL 5.7이 super_read_only 를 소개 할 것이라고 배웠다. .
5.7 문서에서 말하기 때문에 슈퍼 사용자가 자신의 트랙에서 멈추게됩니다.
read_only 시스템 변수가 사용 가능한 경우, 서버는 SUPER 권한이있는 사용자의 클라이언트 업데이트 만 허용합니다. super_read_only 시스템 변수도 사용 가능한 경우, 서버는 SUPER가있는 사용자의 경우에도 클라이언트 업데이트를 금지합니다. 읽기 전용 모드에 대한 설명과 read_only 및 super_read_only의 상호 작용 방법에 대한 정보는 read_only 시스템 변수 설명을 참조하십시오.
마스터 서버에서 super_read_only에 대한 변경 사항은 슬레이브 서버에 복제되지 않습니다. 마스터의 설정과 관계없이 슬레이브 서버에서 값을 설정할 수 있습니다.
super_read_only는 MySQL 5.7.8에서 추가되었습니다.
MySQL 복제 슬레이브를 읽기 전용으로 설정해야합니까?
예, R / O 모드로 슬레이브 서버를 실행하는 것이 좋습니다 사용 가능한 . 이전에는 권한이있는 사용자가 이러한 슬레이브의 데이터를 수정할 수 있었지만 나중에 R / O 제한 "노브"도 얻었습니다.
중요한 이유-간단한 데이터 뭉치 나 복제가 중단되는 키 충돌과 같은 문제로 인해 슬레이브를 효과적으로 사용할 수 없게 만드는 부적절한 쓰기로 후회하는 것보다 쓰기보다 실패하는 것이 좋습니다 (더 이상 실제 슬레이브가 아님).
또한 오케스트레이션 /로드 분할에 사용되는 소프트웨어가 있으며 이러한 서버간에 적절한 요청 라우팅을 위해 구성된 풀에서 서버의 R / O 상태를 고려합니다.
이것이 안전입니다. 사용해.
여기에 MySQL 8.0이 포함 된 문제 read_only = ON
는 start slave
명령 을 실행할 때 MySQL이 강제로 설정하지 않는다는 것 입니다. 왜 문제가 있습니까? 거의 모든 MySQL DBA는 데이터 손상을 방지하기 위해 RO에서 슬레이브를 사용하기 때문에 슬레이브에서 데이터를 수정하는 SQL 또는 conf를 변경하지 않는 앱을 실수로 잘못 실행하는 dba가 항상 존재하기 때문입니다. 슬레이브에 쓰기를 원한다면 여러 스키마가 있고이 스키마에 쓰기가 필요하므로 read_only
명령 이보다 지능적이어야하며을 수행해야합니다 read_only for schema
. 멀티 마스터 서버와 슬레이브를 사용하는 경우 매우 유용 할 수 있습니다 Replicate_Ignore_DB
. 따라서 지금은 수동으로 제어를 수행하고 매우 신중해야합니다.
즐겨.