开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat-集群-MySQL 主从复制配置 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/757/detail/13286
MyCat-集群-MySQL 主从复制配置
内容介绍:
一、 MySQL 主从复制配置
二、 Slave
三、 测试验证
一、 MySQL 主从复制配置
1、master
规划好服务器后,接下来就要搭建 MyCat 的高可用集群,对于这个集群的搭建,是从下往上来搭建的,也就是说先搭建 MySQL 的主从复制,再去安装两台 MyCat ,再去安装 HAProxy 和 Keepalived 。首先第一步是 MySQL 的主从复制的搭建,请求服务后就开始搭建,搭建过程中需要操作的服务器分别是 157 和 158,157 是 MySQL 的主节点,158 是 MySQL 的从节点。由于 157 和 158 这两台服务器之前在搭建双主双从时已经配置完成关系,所以搭建时需要清理里面的环境。
具体操作如下:
此台 MySQL 已经停止,因此需要重启。里面有两个数据库 db01 和 db03, 这个是不需要的,可直接执行指令 drop database db01 删除,再删除 db03。接下来转到 158,db01 还未删除,因此需要执行 drop database db01 。
清理干净之后,接下来需要去配置它们的主从关系。配置主从关系首先先在主节点中配置,需要修改一份配置文件(/usr /my.cnf),里面的配置直接删掉,再重新配置一下。
1)在 master 的配置文件(/usr /my.cnf)中,配置如下内容:
#mysq1 服务ID,保证整个集群环境中唯一
server-id=1
#mysq1 binlog
日志的存储路径和文件名
1og-bin=/var/1ib/mysq1/mysq1bin
#设置 1ogbin 格式
bin1og_format=STATEMENT
#是否只读, 1 代表只读,0 代表读写
read-only=0
#指定同步的数据库
bin1og-do-db=db01
bin1og-do-db=db02
bin1og-do-db=db03
如果同步多个数据库,需要配置多行,为了查看方便,操作时可进行返行,操作完成之后配置 158。
2)执行完毕之后,需要重启 Mysq1 :
1 service mysq1 restart
3) 创建同步数据的账户,并且进行授权操作:
1 grant replication slave on *.* to 'itcast'@'%" identified by 'itcast';
3 flush privileges;
4) 查看 master 状态
1 show master status
字段含义:
1 File: 从哪个日志文件开始推送日志文件
2 Position: 从哪个位置开始推送日志
3 Binlog_Do_DB : 指定需要同步的数据库
二、 slave
1)在 slave 端配置文件中,配置内容如下:
1 #mysq1 服务端 ID,唯一
2 server-id=2
3 #指定 bin1og 日志
1og-bin=/var/1ib/mysq1/mysq1bin
5 #启用中继日志
6 relay-1og=mysq1-relay
2) 执行完毕之后,需要重启 Mysq1:
1 service mysq1 restart;
3) 执行如下指令:
1 change master to master_host= '192.168.192.160', master_user='itcast', master_password='itcast',
master_1og_file='mysq1bin.000001',master_1og_pos=120;
注意:此处主节点改为 157,1og_file='mysq1bin.000002
指定当前从库对应的主库的 IP 地址,用户名,密码,从哪个日志文件开始治的那个位置开始同步推送日志。
进入 mysq1 执行操作,结果是报错了,因为之前配置的 157 到 158 的同步未停止,需先执行 stop slave ,再执行 reset master ,停止它们原有的主从复制关系,然后再配置新的关系。
4)开启同步操作
1执行指令完成后需开启复制功能( start slave )
2开启完成之后接下来需检测其状态( show slave status )
只要 Slave IO_Running 和 Slave SQL Running 是 Yes ,就说明两者之间的主从复制已经开启,
5)停止同步操作
1 stop slave
三、 测试验证
验证可以通过创建一个数据库,如下:
1 create database db01;
user db01;
5 create table user(
6 id int(11) not nu1l auto_increment,
name varchar(50)not
8 sex varchar(1),
9 primary key (id)
10 )engine=innodb default charset=utf8;
12 insert into user(id.name.sex)values(nu11.'Tom'.'1'):
13 insert into user(id,name,sex) values(nul1,'Trigger','o');
14 insert into user(id.name,sex)values(nu11.'Dawn".'1'):
观察 158 从节点上是否有此数据库,若有,接下来创建一个表。这个表依然是 usr这段表。执行创建成功。看 158 上面有没有,同样在此中插入几条记录,主节点上有,再看从节点。若有数据也就验证成功,说明 Mysq1 主从复制已经搭建完成。