1、复制概述

1.1、复制解决的问题

数据复制技术有以下一些特点:

(1) 数据分布

(2) 负载平衡(load balancing)

(3) 备份

(4) 高可用性(high availability)和容错

1.2、复制如何工作

从sql layer中逻辑模块上来看

复制模块分为master模块和slave模块两部分,master模块主要负责在replication环境中读取master端的binary日志,以及与slave端的I/O thread交互等工作。slave模块比master模块所要做的事情稍多一些,在系统中主要体现在两个线程上面。一个是负责从master请求和接受binary日志,并写入本地relay_log的I/O thread。另外一个是负责从relay_log中读取相关的日志事件的SQLthread,然后解析成可以在slave端正确执行并得到和master端完全相同的结果的命令并再交给slave执行的过程。

过程如下:

注:上图中同一种颜色的箭头表示一步,自左向右。

1.3实验环境

系统:centos6.4 x86_64

数据库:mysql 5.6.13(源码安装)

Master端

IP:200.168.10.209

源码安装详见http://essun.blog.51cto.com/721033/1288442中间部分。

在Master上操作:

1)、确保/etc/my.cnf中有如下参数,没有的话需手工添加,并重启mysql服务。

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

[mysqld]

log-bin=mysql-bin 启动二进制文件

server-id=1 服务器ID

2)、登录mysql,在mysql中添加一个puck的账号,并授权给从服务器。 [root@localhost ~]# mysql -uroot -p

mysql> create user puck@200.168.10.200 identified by'password';

mysql> grant replication client,replication slave on *.* to puck@200.168.10.200 identified by 'password';(创建puck用户,并授权给200.168.10.200(Slave)使用。)

3)、查询主数据库状态,并记下FILE及Position的值,这个在后面配置从服务器的时候要用到。

mysql> show master status\G

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

File: mysql-bin.000005

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

Slave端

IP:200.168.10.200

源码安装详见http://essun.blog.51cto.com/721033/1288442中间部分。

在Slave上操作:
1)、确保/etc/my.cnf中有log-bin=mysql-bin和server-id=1参数,并把server-id=1修改为server-id=10。修改之后如下所示:
[mysqld]
log-bin=mysql-bin 启动二进制文件
server-id=10 服务器ID
2)、重启mysql服务。
[root@localhost ~]#/etc/init.d/mysql restart
3)、登录mysql,执行如下语句
[root@localhost ~]# mysql –u root –p

mysql> change master to master_host='200.168.10.209',master_user='puck',master_password='password',master_log_file='mysql-bin.000005',master_log_pos=120;

4)、启动slave同步。

mysql> start slave;
5)、检查主从同步,如果您看到Slave_IO_Running和Slave_SQL_Running均为Yes,则主从复制连接正常。

mysql> show slave status\G

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 200.168.10.209 #主服务器的地址
                  Master_User: puck           #主服务器允许复制的用户
                  Master_Port: 3306           #通信端口
                Connect_Retry: 60             #重新连接的时间
              Master_Log_File: mysql-bin.000005#当前主服务器的日志文件
          Read_Master_Log_Pos: 120            #binary_log日志起始点
               Relay_Log_File: slave-relay-bin.000005#Slave端当前日志文件
                Relay_Log_Pos: 283        #Relay_log日志起始点
        Relay_Master_Log_File: mysql-bin.000005
             Slave_IO_Running: Yes        #I/Othread 用于复制master的Binary log到Relay_log中,当前状态运行中
            Slave_SQL_Running: Yes        #将Relay_log中语句解析并应用于Slave端数据库中
              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: 120
              Relay_Log_Space: 619
              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:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: f9ba5511-0fbe-11e3-a989-000c29f64ea5
             Master_Info_File: /data/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

验证配置是否正常,mysql主从能否正常复制。
1.4、测试主从复制
在主数据库上新建一个库,并且在库中写一个表和一些数据。
[root@localhost ~]# mysql –u root –p
mysql> create database mydatabase;
mysql> use mydatabase;
mysql> create table jin (id int(5),name char(10));
mysql> insert into jin values (2,'puck');
在从数据库中验证一下,是否正常复制到数据。
[root@localhost ~]# mysql -uroot –p123456
mysql> show databases;
mysql> select * from mydatabase.jin;

本文转自 jinlinger 51CTO博客,原文链接:http://blog.51cto.com/essun/1306466,如需转载请自行联系原作者

MySQL 的主从复制相关推荐

  1. mysql的主从复制是如何实现的

    前言 MySQL的主从复制是MySQL本身自带的一个功能,不需要额外的第三方软件就可以实现,其复制功能并不是copy文件来实现的,而是借助binlog日志文件里面的SQL命令实现的主从复制,可以理解为 ...

  2. mysql的主从复制原理与实现

    关于mysql的主从复制,之前一直在听说这个话题,一直没有实现,昨天学习了下,原来是这么回事: 既然是主从复制,那么肯定有主有从,也就说一个主数据库(一般为写库),一个从数据库(读库).主数据库更新了 ...

  3. php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制

    Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...

  4. MySQL Replication 主从复制全方位解决方案

    MySQL Replication 主从复制全方位解决方案 参考文章: (1)MySQL Replication 主从复制全方位解决方案 (2)https://www.cnblogs.com/clsn ...

  5. MyCat学习:使用MySQL搭建主从复制(一主一从模式)

    首先使用MyCat登录需要一个前提,那就是有MySQL的主从复制 开始搭建MySQL主从复制(一主一从) 一.配置文件修改 主机配置文件修改 server-id=1 # 定义服务器唯一ID log-b ...

  6. Mysql 8主从复制配置图解

    Mysql 8主从复制配置图解 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理.本文主要介绍mysql的主从的配置. 注:1 当前主服务 ...

  7. MySQL搭建主从复制 读写分离 分库分表 MyCat高可用

    主从演示 读写演示 分表演示 主从复制 环境的介绍 系统环境:centos7.0 客户端连接工具:xshell 远程文件传输工具:xftp 服务器: 192.168.126.138(主) 192.16 ...

  8. 基于mysql的主从复制之Mycat简单配置和高可用

    what-mycat 1.Mycat就是MySQL Server,而Mycat后面连接的MySQL Server,就好象是MySQL的存储引擎,如InnoDB,MyISAM等. 因此,Mycat本身并 ...

  9. 利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复。

    利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复. 一.pt-table-checksum检查主从库数据的一致性 pt-table-checksum在MASTE ...

  10. 怎样解决MySQL数据库主从复制延迟的问题?

    1.网络超时 2.慢查询 3.流量 问题一:主库的从库太多,导致复制延迟 从库数据以3-5个为宜,要复制的从节点数量过多,会导致复制延迟 问题二:从库硬件比主库差,导致复制延迟 查看Master和Sl ...

最新文章

  1. 浅谈CSS3中display属性的Flex布局,关于登陆页面属性框的设置
  2. r指定位置插入一列数值
  3. 《编译与反编译技术实战》——第2章编译器实践概述
  4. 使用SeekBar组件调节屏幕亮度
  5. php搜索文件名,window_Windows7内置搜索如何同时搜索文件名与内容,  Win7的搜索功能效果非常强 - phpStudy...
  6. wxml 判断 小程序_如何判断小程序外包公司是否靠谱
  7. 根据不同条件查询_刑事立案要符合哪些条件,怎么查看立案没有
  8. Visual studio 2013 err:visual studio no editoroptiondefinition export found for the given option ...
  9. Firefox开发者版本终于支持Windows 64位
  10. Unity 中的特殊文件夹
  11. C++工程通过opencv找到自己定义的矩形中的两平行线的距离
  12. Window下完全卸载MySQL教程
  13. Java自己编名字的百家姓罗列
  14. 安全测试(初测)报告
  15. 爱,是尘世间人人追求的人生之最,是生活中无处不在的美
  16. Glide学习(二)—缓存策略
  17. [转]汽车ARM攒机指南
  18. 面试了500个年轻人,发现混得好的,都会这5种说话套路
  19. easyexcel 检查表头是否匹配_利用easyexcel生成excel文件-自定义表头与数据栏对应的处理方式...
  20. Terraria-steam联机与服务器搭建联机

热门文章

  1. strut2_struts.xml文件配置知识点汇集
  2. ASP.NET服务器对于请求的处理过程
  3. IE下 jqModal的问题
  4. Java开发笔记(一百二十九)Swing的输入框
  5. JavaScript里的数组转化新方法Array.From
  6. linux-du命令详解
  7. 成熟有家男人与24岁女孩的精彩对白[推荐]
  8. matlab 纵坐标 科学计数法,echarts纵坐标使用科学计数法表示
  9. java教程:十分钟理解Java中的弱引用
  10. Oracle DB优化-如何看SQL的执行计划+收集表的统计信息