引言
主从复制是MySQL高可用架构的基础。本文讲解主从复制的配置和应用。
一、主从复制原理
1
| 主库 → binlog → I/O Thread → Relay Log → SQL Thread → 从库
|
二、配置主库
1 2 3 4 5
| [mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=mydb
|
1 2 3 4 5 6
| CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
SHOW MASTER STATUS;
|
三、配置从库
1 2 3 4
| [mysqld] server-id=2 relay-log=mysql-relay-bin
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G
|
四、读写分离
1 2 3 4 5 6 7 8 9 10
| @Transactional(readOnly = true) public User getUser(Long id) { return userDao.selectById(id); }
@Transactional public void updateUser(User user) { userDao.updateById(user); }
|
总结
MySQL主从复制核心:
- 原理:binlog复制
- 配置:主库开启binlog,从库配置主库信息
- 应用:读写分离、备份、高可用
参考资料