마스터-슬레이브 동기화 프로세스(원리):
master
는 변경 사항을 바이너리 로그 파일(바이너리 로그)에 기록합니다. , 구성 파일 log-bin에 의해 지정된 파일, 이러한 기록을 바이너리 로그 이벤트라고 합니다. master
将变动记录到二进制日志文件(binary log)中,即配置文件中 log-bin 指定的文件,这些记录叫做二进制日志事件(binary log events);
master
将二进制日志文件发送给 slave;
slave
通过 I/O 线程读取文件中的内容写到 relay 日志中;
slave
执行 relay 日志中的事件,完成数据在本地的存储。
搭建主从需要注意的事项:
主从服务器操作系统版本和位数一致;
Master
和 Slave
数据库版本要一致;
Master 和 Slave 数据库中的数据要一致;
Master 开启二进制日志, Master 和 Slave 的 server_id 在局域网内必须唯一。
修改 master 的配置( my.cnf)加入下面的内容:
[mysqld] log-bin=mysql-bin # id 必须唯一!!! server-id=1
重启 master:
systemctl restart mysql
在 master 中创建用于主从同步的用户:
mysql> # 创建用户 mysql> CREATE USER 'hugh'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; mysql> # 授权用户 mysql> GRANT REPLICATION SLAVE ON *.* TO 'hugh'@'%'; mysql> # 刷新权限 mysql> FLUSH PRIVILEGES;
查看主服务器状态:
show master status;
记录下 File
和 Position
的值,之后要用到。
修改slave 的配置( my.cnf)加入下面的内容:
[mysqld] # id 必须唯一!!! server-id=2
重启 slave:
systemctl restart mysql
登录 MySQL 并运行以下命令,设置主节点参数:
mysql> CHANGE MASTER TO MASTER_HOST='master的IP地址', MASTER_USER='hugh', MASTER_PASSWORD='123456', MASTER_LOG_FILE='binlog.000006', MASTER_LOG_POS=856;
最后两行就是我们记录下的 File
和 Position
master
는 바이너리 로그 파일을 슬레이브에 보냅니다. < code>slave 는 I/O 스레드를 통해 파일 내용을 읽고 이를 릴레이 로그에 기록합니다.
slave
는 릴레이에서 이벤트를 실행합니다. 스토리지의 로컬 데이터를 기록하고 완성합니다.
슬레이브
의 데이터베이스 버전은 일관성이 있어야 합니다. 🎜🎜🎜마스터 및 슬레이브 데이터베이스의 데이터는 일관성이 있어야 합니다. 🎜🎜🎜마스터. 바이너리 로그를 켜고 마스터와 슬레이브의 server_id는 LAN 내에서 고유해야 합니다. 🎜🎜2. MySQL 마스터-슬레이브 설정🎜mysql> show slave status\G;
Slave_IO_Running: Yes Slave_SQL_Running: Yes
파일
및 기록 위치 값은 나중에 사용됩니다. 🎜<h4>2.2 슬레이브 작업</h4>🎜🎜슬레이브 구성(my.cnf)을 수정하고 다음 콘텐츠를 추가하세요. 🎜🎜rrreee🎜🎜슬레이브 다시 시작: 🎜🎜rrreee🎜🎜MySQL에 로그인하고 다음을 실행하세요. 메인 노드 매개변수를 설정하는 다음 명령: 🎜🎜rrreee🎜마지막 두 줄은 우리가 기록한 <code>File
및 Position
값입니다. 🎜🎜🎜마스터-슬레이브 동기화 상태 확인: 🎜🎜rrreee🎜🎜다음 정보를 확인하세요. 모두 '예'이면 구성이 성공한 것입니다. 🎜🎜rrreee위 내용은 MySQL에서 마스터-슬레이브 동기화 작업을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!