mysql主从同步逻辑
主从同步不是直接拷贝数据文件,而是通过重放主库的二进制日志来实现的。其本质是“主库写日志,从库读日志”。
环境搭建:
1. 系统信息
操作系统: KylinServer SP3
MySQL版本: MySQL 8.0+(这里以8.2为例)
服务器规划:
主库 (Master): 192.168.113.11
从库 (Slave): 192.168.113.22
# 1. 确保服务器间网络互通 ping 192.168.113.11 ping 192.168.113.22 # 2. 关闭防火墙或开放MySQL端口(3306) # 临时关闭 systemctl stop firewalld # 或永久关闭 systemctl disable firewalld # 3. 禁用SELinux(生产环境建议配置策略) # 临时关闭 setenforce 0 # 永久关闭 sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 4. 确保时间同步 yum install -y ntpdate ntpdate ntp.aliyun.com安装mysql8.2
参考作者以前部署mysql文档mysql8.0部署https://blog.csdn.net/m0_55213400/article/details/147068319?spm=1001.2014.3001.5501两边mysql版本必须保持一致
配置主(master)服务
log-bin=mysql-bin server-id=130(主从ID不相同)重启mysql
systemctl restart mysqld创建mysql用户
mysql> create user 'slave01'@'192.168.113.22' identified by '**********'; Query OK, 0 rows affected (0.03 sec) mysql> grant replication slave on *.* to 'slave01'@'192.168.113.22'; Query OK, 0 rows affected (0.01 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.02 sec)配置从(slave)服务
启动slave
STOP SLAVE; (停止slave)服务 RESET SLAVE ALL;查看slave状态
-- 启动复制 START SLAVE; -- 查看复制状态 SHOW SLAVE STATUS\G;主从同步失败报错解决
如下图所示:
change master to master_host='192.168.113.11',master_user='slave01',master_password='*********',master_log_file='mysql-bin.000003',MASTER_SSL=1,master_log_pos=1459;问题解决