ITPub博客

首页 > 数据库 > MySQL > Mysql5.7 M-S-S 搭建

Mysql5.7 M-S-S 搭建

原创 MySQL 作者:波仔strong 时间:2018-07-04 16:39:06 0 删除 编辑


部署M-S-S模型


环境介绍:

XUEGOD63 master mysql5.7.20 192.168.1.63

XUEGOD64 slave中继 mysql5. 7.20 192.168.1.64

XUEGOD65    slave     mysql5. 7.20     192.168.1.65


部署master---->XUEGOD63:


在主服务上创建一个用户,并授予replication slave权限:

mysql> grant replication slave on *.* to repl@'192.168.1.64' identified by '123456';

mysql> flush privileges;

[root@xuegod63 ~]# vim /etc/my.cnf #修改配置 增加以下选

server-id=1

binlog-do-db=HA

log-bin=mysql-bin-master

binlog-ignore-db=mysql

sync-binlog=1

binlog-format=row



重启服务

[root@xuegod63 ~]# systemctl restart mysqld

导出主服务器HA库完整备份, 拷贝到 中继服务器 和slave服务器

[root@xuegod63 ~]# mysqldump -uroot -p123456 -B HA>ha.sql

[root@xuegod63 ~]# scp ha.sql 192.168.1.64:/root

[root@xuegod63 ~]# scp ha.sql 192.168.1.65:/root



部署slave中继------> XUEGOD64


导入数据库ha.sql

[root@xuegod64 ~]# mysql –uroot –p123456 <ha.sql

配置my.cnf

[root@xuegod64 ~]#vim /etc/my.cnf

server-id= 2

#修改主配置文件也要开启bin-log:

log-bin=mysql-bin-slave1

log-slave-updates=1 #把它从relay-log当中读取出来的二进制日志并且这本机上执行的操作也记录这自己的二进制日志里面,这样才能使第三台slave通过中继slave读取到相应数据变化

binlog-format=row


重启服务

[root@xuegod64 ~]# systemctl restart mysqld


指定中继slave的主服务器

mysql> stop slave;

mysql> change master to master_host='192.168.1.63',master_user='repl',master_password='123456';

mysql> start slave;


查看中继服务的状态

mysql> show slave status \G


在中继slave上创建一个用户,并授予replication slave权限

mysql> grant replication slave on *.* to 'repl'@'192.168.1.65' identified by '123456';

mysql> flush privileges;


部署slave------>xuegod65


导入数据库ha.sql

[root@xuegod65 ~]# mysql –uroot –p123456 <ha.sql


配置my.cnf

vim /etc/my.cnf

server-id = 3

log-bin=mysql-bini-slave2

binlog-format=row

[root@xuegod65 ~]# systemctl restart mysqld 重启

指定slave中继服务作为xuegod65的主:

mysql> stop slave;

mysql> change master to master_host='192.168.1.64',master_user='repl',master_password='123456';

mysql> start slave;

查看从服务的状态

mysql> show slave status \G


从master上插入数据测试:


mysql> insert into test values (1,'AA');

Query OK, 1 row affected (0.09 sec)

然后分别在slave中继,与slave上查看

为什么中继服务器也查到数据呢? 因为是存储引擎的问题。

修改表的引擎:

mysql> alter table t1 ENGINE=blackhole; (先关闭日志记录再修改set sql_log_bin=off)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31485142/viewspace-2157329/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Mycat读写分离
请登录后发表评论 登录
全部评论

注册时间:2017-08-25

  • 博文量
    87
  • 访问量
    91912