MySQL 主从
docker-compose.yml
services:
mysql-master:
image: mysql:8.0
volumes:
- master-data:/var/lib/mysql
- ./master.cnf:/etc/mysql/conf.d/master.cnf
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: mydb
ports:
- "3306:3306"
mysql-replica:
image: mysql:8.0
volumes:
- replica-data:/var/lib/mysql
- ./replica.cnf:/etc/mysql/conf.d/replica.cnf
environment:
MYSQL_ROOT_PASSWORD: secret
depends_on:
- mysql-master
volumes:
master-data:
replica-data:
master.cnf
[mysqld]
server-id=1
log-bin=mysql-bin
binlog-do-db=mydb
replica.cnf
[mysqld]
server-id=2
relay-log=mysql-relay-bin
read-only=1
小结
| 组件 | 作用 |
|---|
| master | 主库,可读写 |
| replica | 从库,只读 |
| binlog | 数据同步 |