Docker实战之MySQL主从复制
Spring源码分析-BeanFactoryPostProcessors 应用之 PropertyPlaceholderConfigurer
媒介
曾几何时,看着嵬峨上的架构和列位先辈高明的炫技,有无怦然心动,也想一窥终究?每当口试的时刻,拿着单运用的架构,吹着分库分表的牛X,有无内心慌的一批?
实在许多时刻,我们所缺乏的只是对嵬峨上的手艺的练习训练。没有相干的营业需求,没有集群环境,然后便只是Google几篇博文,看下道理,便算是了解了。然则真的邃晓了吗?浩瀚的复制粘贴中,那篇文章才对我们有效,哪些又是耳食之言?
所幸容器手艺的疾速生长,让种种手艺的模仿成为现实。接下来Docker相干的一系列文章,将以实战为主,协助人人疾速搭建测试和练习训练环境。
Docker文件编排
由因而测试为了练习训练用,这里用docker-compose举行设置文件的编排,现实的集群环境中并非这么布置的。
- 编排docker-compose-mysql-cluster.yml,装置master和slave节点
version: '3'
services:
mysql-master:
image: mysql:5.7
container_name: mysql-master
environment:
- MYSQL_ROOT_PASSWORD=root
ports:
- "3307:3306"
volumes:
- "./mysql/master/my.cnf:/etc/my.cnf"
- "./mysql/master/data:/var/lib/mysql"
links:
- mysql-slave
mysql-slave:
image: mysql:5.7
container_name: mysql-slave
environment:
- MYSQL_ROOT_PASSWORD=root
ports:
- "3308:3306"
volumes:
- "./mysql/slave/my.cnf:/etc/my.cnf"
- "./mysql/slave/data:/var/lib/mysql"
- 设置master设置文件my.cnf
[mysqld]
# [必需]启用二进制日记
log-bin=mysql-bin
# [必需]效劳器唯一ID,默许是1,平常取IP末了一段
server-id=1
## 复制过滤:也就是指定哪一个数据库不必同步(mysql库平常不同步)
binlog-ignore-db=mysql
- 设置slave设置文件my.cnf
[mysqld]
# [必需]效劳器唯一ID,默许是1,平常取IP末了一段
server-id=2
- 启动docker-compose,建立docker镜像文件
docker-compose -f docker-compose-mysql-cluster.yml up -d
docker ps
检察历程,能够看到2个实例已启动。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1f4ad96b4d5e mysql:5.7 "docker-entrypoint.s…" 48 seconds ago Up 46 seconds 33060/tcp, 0.0.0.0:3307->3306/tcp mysql-master
8e2214aacc43 mysql:5.7 "docker-entrypoint.s…" 49 seconds ago Up 47 seconds 33060/tcp, 0.0.0.0:3308->3306/tcp mysql-slave
设置主从复制
- 设置master
- 设置slave
这时刻就能够运转一些 SQL 语句来考证同步效劳是不是一般了。
考证主从复制
- master建立db
- 检察slave是不是同步建立
由效果可知,已完成MySQL主从复制环境的搭建。
读写星散
MySQL主从复制是其自身的功用,完成读写星散就得依托其他组件了,比方sharding-jdbc
。然则sharding-jdbc
只是完成读写星散,自身的权限掌握照样须要MySQL这边来设置的。
- 设置master账户及权限
建立帐号并授与读写权限
CREATE USER 'master'@'%' IDENTIFIED BY 'Password123';
GRANT select,insert,update,delete ON *.* TO 'master'@'%';
flush privileges;
- 设置slave账户及权限
建立帐号并授与只读权限
use mysql;
CREATE USER 'slave'@'%' IDENTIFIED BY 'Password123';
GRANT select ON *.* TO 'slave'@'%';
FLUSH PRIVILEGES;
视频在线率统计——基于驱动总线设备的领域驱动设计方法落地