文档章节

Mysql的AB复制

Berry涩味
 Berry涩味
发布于 2014/06/22 21:00
字数 929
阅读 69
收藏 5

MysqlAB复制

环境:rhel 6.5

master:192.168.2.1

slave1:192.168.2.2

slave2192.168.2.10


1.mysql的单向复制

: mysql 数据库的版本,两个数据库版本要相同,或者slave master 版本高!

yum install  mysql-server -y

请注意当你进行复制时,所有对复制中的表的更新必须在服务器上进行。否则,

必须要小心,以避免用户对主服务器上的表进行的更新与对从服务器上的表所进行的

更新之间的冲突。

master server配置

开启mysqld服务

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 |      106 | westos      | mysql            |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

1)创建同步帐户,并给予权限

mysql> grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';


mysql>flush privileges;

2 )配置 /etc/my.cnf 配置文件

[mysqld]下添加一下参数

log-bin=mysql-bin #启动二进制日志系统

binlog-do-db=westos #二进制需要同步的数据库名

server-id=1 #必须为1232–1之间的一个正整数值

binlog-ignore-db=mysql #避免同步 mysql用户配置,以免不必要的麻烦


3 )service mysqld restart

slave server 配置

1 )配置 /etc/ my.cnf 文件

[mysqld]下添加一下参数

server-id=2 #从服务器 ID ,不要和主ID相同,如果设置多个从服务器,每个从服务器必须有一个唯一的server-id,必须与主服务器的以及其它从服务器的不相同。可以 认为server-id值类似于IP地址:这些ID值能唯一识别复制服务器群集中的每个服务 器实例。

2 )service mysqld   start

mysql -uwestos  -pwestos  -h  192.168.2.1 #进入mysql

mysql> change master to master_host='192.168.2.1', master_user='westos', master_password='westos', master_log_file='mysql-bin.000003', master_log_pos=106; #注意跟master的日志文件,日志位置保持一致


mysql> slave start;

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.2.1

Master_User: westos

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000003

Read_Master_Log_Pos: 106

Relay_Log_File: mysqld-relay-bin.000002

Relay_Log_Pos: 251

Relay_Master_Log_File: mysql-bin.000003

Slave_IO_Running: Yes

          Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 106

Relay_Log_Space: 407

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

master创建数据库,创建表添加数据,slave server是否同步

mysql> create database westos;

mysql> use westos;

mysql> create table linux(

-> username varchar(20)  not  null,

-> password varchar(50)  not  null

-> );

mysql> desc linux;

mysql> insert into linux values ('user1','123');

mysql> insert into linux values ('user2',password(123));

mysql> select * from linux;

+----------+-------------------------------------------+

| username | password                                  |

+----------+-------------------------------------------+

| user1    | 123                                       |

| user2    | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

+----------+-------------------------------------------+

slave机子上:

mysql> show databases;

mysql> select * from westos.linux; #数据同步成功

+----------+-------------------------------------------+

| username | password                                  |

+----------+-------------------------------------------+

| user1    | 123                                       |

| user2    | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

+----------+-------------------------------------------+

master上更改:

mysql> update linux set password=456;

slave上: #查看数据同步已过来

mysql> select * from westos.linux;

+----------+----------+

| username | password |

+----------+----------+

| user1    | 456      |

| user2    | 456      |

+----------+----------+



线性A- > B - > Cmaster - >slave1- >slave2

添加一个slave2192.168.2.10

slave1node2上修改配置文件

vim /etc/my.cnf

server-id=2

添加: log-bin=mysql-bin

binlog-do-db=westos

inlog-ignore-db=mysql


log-slave-updates

/etc/init.d/mysqld  restart #重启mysql

授权mysql>grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';

mysql> flush privileges;


slave2192.168.2.10:

验证权限  mysql -uwestos  -pwestos  -h  192.168.2.2  看能否登录进mysql

vim /etc/my.cnf

server-id=3

/etc/init.d/mysqld  restart #重启mysql


slave1上:


由于 master上已经有数据,而新加的slave2 没有,必须在配置复制前同步数据。

westos库里的表导入到back

mysqldump westos > back

scp back 192.168.2.10: #把库发给slave2


slave2上:

mysqladmin create westos #创建westos

mysql westos < back #back库里的表导入到westos


mysql> show databases;

mysql> use westos;

mysql> show tables;

mysql> select * from linux;

slave1mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      106 | westos       | mysql            |

+------------------+----------+--------------+------------------+

slave2上:

mysql> change master to master_host='192.168.2.2', master_user='westos', master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=106

mysql> slave start;

mysql> show salve status\G; #查看状态是否正常

现在开始测试:

A mastermysql> delete from linux;

验证查看B slave1C slave2   mysql> select * from linux;

A mastermysql> insert into linux values ('sxy','123');

验证查看B slave1C slave2   mysql> select * from linux;

+----------+----------+

| username | password |

+----------+----------+

| sxy      | 123      |

+----------+----------+ 


© 著作权归作者所有

共有 人打赏支持
上一篇: lnmp 的简单搭建
下一篇: Hadoop分布式部署
Berry涩味
粉丝 8
博文 7
码字总数 14335
作品 0
西安
系统管理员
私信 提问
探索MySQL高可用架构之MHA(4)

探索MySQL高可用架构之MHA(4) -----构建mysql高可用系列(共9篇) 上一篇文章介绍了本次架构中的Mysql源码安装。本篇文章主要介绍本次架构中的ABBB复制。 首先我们先介绍什么是MySql AB复制???...

顺境其生
2015/07/22
0
0
使用百度云加速防apache的ab测试ddos攻击

Apache带的有一个ab压力测试的; 具体的概念性的东西;咱不扯;有兴趣的自行搜索; 这里只简单介绍使用方法; windows示例:e:wamp64binapacheapache2.4.17binab.exe -n1000 -c100 http://ba...

白俊遥
2016/05/22
539
0
mysql (ab复制 mysql中间件)

原理图: mysql ab复制 A->B master: vim /etc/my.cnf 添加 log-bin=mysql-bin server_id=1 show master status grant replication slave on . to repl@'%' identified by 'repl' mysql-bin......

doudou___9958
2016/11/10
7
0
青云QingCloud RDS 服务率先支持 MySQL 5.7

作为一家优秀的基础云服务提供商,青云QingCloud 一直致力于为用户提供更好的服务,今天QingCloud RDS 服务率先支持 MySQL 5.7 版本(据小编了解应该是国内首家吧,如有误,请轻拍),本次升...

cathyli
2016/03/24
8
0
MySQL的小指南

《高性能MySQL》一书给我们做了许多指导,其中有5章应该精读的: Schema与数据类型优化 创建高性能的索引 查询性能优化 MySQL高级特性 复制 我对这几章都读过不下三遍了,有一些理解,当然更...

JoshuaShaw
2016/05/04
59
1

没有更多内容

加载失败,请刷新页面

加载更多

转换 bytes 为 kb/mb/gb/tb/pb…

智能转换 bytes 为 kb/mb/gb/tb/pb… 用到了 math 模块中的一些函数 #!/usr/bin/env python# -*- coding: utf-8 -*-"""智能转换 bytes 为 kb/mb/gb/tb/pb..."""import mathdef conv...

郭恩洲_OSC博客
11分钟前
1
0
Mysql导出sql语句的方法及可能遇到的mysqldump: command not found

解决办法: 打开terminal    输入vi ~/.bash_profile    添加如下三行代码:    #mysql  PATH=$PATH:/usr/local/mysql/bin  export    保存并退出...

Liens
12分钟前
0
0
一文读懂,深入浅出 RPC框架

RPC 功能目标 RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显...

别打我会飞
13分钟前
0
0
sed关于打印

p命令用来打印文本行 跟替换命令中的p标记类似,p命令可以打印sed编辑器输出中的一行。 我们这主要还是用,下面的测试吧 我们可以试一下 echo 'hello world,xin!' | sed 'p' 如果我还是用tes...

woshixin
23分钟前
0
0
【转载】缓存穿透,缓存击穿,缓存雪崩解决方案分析

前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑...

xiaomin0322
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部