mysql主从复制 (基于日志点的复制)

原创 2018年04月15日 14:25:28

主从复制概念:
这里写图片描述

紫罗兰砢s 

  mysql的复制(replication)是一个异步的复制过程,从master复制到slave的过程,由三个线程完成,其中两个线程(sql线程和I/O线程)在slave端,另一个I/O线程在Master端。
  主服务器把数据变化记录到时二进制日志中,然后从服务器通过在master中的I/O线程读取主服务器上的日志并且把读取到的日志通过从服务器上的I/O线程写入到从服务器的中继日志中,接着sql线程读取中继日志,并且在从服务器上重放(完全顺序执行日志中所记录的各种操作),从而实现Mysql复制。

为会么要用?

如果mysql主服务器的访部量较大,可以通过复制数据,在从服务器
进行查询操作,从而降低主服务器的访问压力,同时从服务器作为主
服务器的备份,可以避免主服务器因为故障导致数据丢失的问题。

mysql复制至少需要两个mysql服务,这些mysql服务可以分布在不同的服务器上,也可以在一台服务器启动多个服务。

show binary logs;

如果报错就代表mysql没有开启二进制。
master修改配置

log-bin
server-id=1

登录master,添加一个复制使用的账户repl,并授于replication slave权限。(常用于建立复制时所需要用到的用户权限,也就是slave server必须被master server授权具有该权限的用户,才能通过该用户复制)
@’ip’或者@‘172.0.0.%’【网段】//%代表所有这个ip段的地址

grant REPLICATION slave on *.* to 'repl'@'172.17.0.%' identified by 'root123'; 

在主服务器上,设置锁定有效,这个操作确保没有数据库操作,以便获得一致性的快照。(这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。)
mysql锁参考

flush tables with read lock;

查询master上的进制日志名file和偏移量position,这个操作的目的是为了在从数据库启动以后,从这个点进行数据库的恢复。

show master status;

接下来是备份数据库,我不想备了。。。
备份完成后,解除全局读锁定

unlock tables

接着修改从数据库服务器上的my.cnf,添加一个server-id

log-bin[=paht]#设置log目录,不设就在datadir
server-id=2
relay_log=mysql-relay-bin=PATH#要指定中继日志的文件,因为默认是master的主机名,如果master改变了主机名,就会导至复制失败

要使配置生效要重启。。。
接下来登录到从服务器上,执行以下命令,指定复制使用的用户,master以及开始复制的日志文件和位置。
密码和用户名别搞错了

stop salve;
change master to
master_host='192.168.1.12',
master_user='repl',
master_password='123',
master_log_file='mysql-bin.000029',
master_log_pos=109;

然后

start slave;
show slave status\G;

我第一次会报错要多试几次
然后再从服务器上执行

show processlist \G;

发现出现了一个repl用户的信息。主从同步成功后,我们在主上进行的任何操作,都会同步到从上。
查看从库

 show slave hosts;

如果你的从服务器同时也作为其他服务器的主服务器,搭建一个链式的复制,那么就需要开启这个选项(log-slave-updates),这样他的从服务器才能获取他的二进制日志进行同步操作。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35772366/article/details/79949056

MySQL主从复制搭建,基于日志(binlog)

什么是MySQL主从复制简单来说就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟),...
  • wantnrun
  • wantnrun
  • 2017-04-17 13:57:13
  • 1439

MySQL 基于日志点复制

MySQL的复制功能不仅可以构建高性能的应用,也是高可用性、可扩展性、灾难恢复等工作的基础。复制的主要功能1、数据分布。 MySQL提供的复制功能并不需要很大的带宽的要求,因此可以在不同的物理位置来...
  • STFPHP
  • STFPHP
  • 2016-12-11 12:14:34
  • 1322

MySQL主从复制实现基于日志点的复制

实现基于日志点的复制 1:在Master端建立复制用户 2:备份Master端数据,并在Slave端恢复 3:使用Change master命令配置复制 select user,hos...
  • dongyuxu342719
  • dongyuxu342719
  • 2017-06-28 09:40:05
  • 119

MySQL主从复制实战 - 基于日志点的复制

MySQL主从复制实战 - 基于日志点的复制基于日志点的复制 在主库与从库上建立专用的复制账号MariaDB [employees]> create user 'repl'@'172.%' ident...
  • Solarison
  • Solarison
  • 2017-03-05 16:26:57
  • 261

mysql5.7主从复制---基于日志的复制

mysql作为一个开源免费的数据库经常在工作中或学习中会使用到,于此记录其主从复制的步骤。               参考资料:慕课网,mysql5.7复制实战课程               另外...
  • u014739462
  • u014739462
  • 2017-04-15 09:27:20
  • 451

MySQL主从复制-基于GTID及多线程的复制

GTID        GTID是Global Transaction identity 的缩写。字面翻译是全局事务id。其主要目的是为了简化复制。 GTID的概念      普通的复制...
  • Ghost_leader
  • Ghost_leader
  • 2017-03-09 21:06:20
  • 744

mysql主从复制

  • 2015年01月14日 18:47
  • 3KB
  • 下载

mysql主从复制配置(基于日志点)

MySQL主从是基于binlog日志,所以在安装好数据库后就要开启binlog。这样好处是,一方面可以用binlog恢复数据库,另一方面可以为主从做准备。 查看日志开启状态:show variabl...
  • tianwei7518
  • tianwei7518
  • 2016-12-04 22:00:07
  • 390

PostgreSQL基于预写日志的复制

PostgreSQL是一款优秀的开源关系型数据库,从1989年至今已有22年历史,经过多次转折,如今乃是业界流行度仅次于MySQL的开源数据库系统。比起MySQL,PostgreSQL有更好的索引支持...
  • wzyzzu
  • wzyzzu
  • 2015-10-09 15:09:29
  • 698

mysql主从复制主服务器日志格式的区别

statement(语句级别,从服务器直接把语句拿来执行):            影响一大片(插入很多条或修改很多条),就适合用 statement       row(行级别,从服务器直接拷...
  • chenmoimg_
  • chenmoimg_
  • 2017-03-16 21:27:26
  • 249
收藏助手
不良信息举报
您举报文章:mysql主从复制 (基于日志点的复制)
举报原因:
原因补充:

(最多只允许输入30个字)