一、主从复制原理
- 主库(Master):负责写入,开启 binlog 日志
- 从库(Slave):负责读取,通过 IO 线程同步 binlog
- 最终目标:主从数据一致,实现读写分离
二、主库配置(my.cnf)
ini
[mysqld]
server-id=1
log_bin=mysql-bin
binlog_format=ROW
expire_logs_days=7
重启:
bash
运行
systemctl restart mysqld
三、主库创建复制账号
sql
CREATE USER 'myslave'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'%';
FLUSH PRIVILEGES;
查看 binlog 位置:
sql
SHOW MASTER STATUS;
记下:
- File: mysql-bin.000001
- Position: 156
四、从库配置(my.cnf)
ini
[mysqld]
server-id=2
relay_log=relay-bin
read_only=1
重启:
bash
运行
systemctl restart mysqld
五、从库关联主库
sql
CHANGE MASTER TO
MASTER_HOST='192.168.x.x',
MASTER_USER='myslave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=156;
启动复制:
sql
START SLAVE;
查看状态:
sql
SHOW SLAVE STATUS\G
成功标志:
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes