一致性是指多副本中的数据一致性问题,可以分为强一致性,顺序一致性,弱一致性
强一致性
在任意时刻,所有节点中的数据是一样的,例如,例如主从数据库,主库更新一个数据后,可以从从库读取到
可以指定复制所有库,指定库,或者指定表
主从复制的优点
- 主库负责写,从库负责读,可以分配负载以提高性能
- 数据备份,从库可以作为备份数据库
主从复制原理
- 主库开启二进制日志
- 主库将sql语句通过
io线程
保存在二进制日志binary log
- 从库启动
io线程
,读取主库的binary log
到自己的中继日志realy log
- 从库开启
sql线程
,定时检查realy log
,然后执行realy log
语句 - 从库会记录主库二级制日志的坐标,所以从库可以暂停恢复继续处理
docker启动mysql容器
# 镜像为mysql:5.7
docker run -p 13306:3306 --name mysql_1 --network mysql-network -e MYSQL_ROOT_PASSWORD=123456 -d mysql:v57
# 进入容器
docker exec -it mysql_1 /bin/bash
# 允许root远程登录mysql
grant all privileges on *.* to root@'%' identified by "password";
flush privileges;
主库配置
创建用户