Mysql5.7基于日志主从复制
主从同步概念
主从同步是异步复制
Mysql两种复制类型:
基于二进制日志
使用GTID完成基于事务的复制
基于日志三种方式:
Mysql5.7需要注意的问题: 老版本方法创建mysql用户
#mysql5.7之前版本,新建并赋权限
grant replication slave on *.* to 'dba'@'192.168.25.%' identified by '';
查看警告
show warnings;之后发现这个创建用户的方法已经被抛弃,将来版本可能被移除
删除mysql用户
drop user 'dba'@'192.168.25.%';
查看mysql中的用户
select user,host from mysql.user;
新建用户
在master服务器上新建用户,登录mysql后执行以下语句
create user 'dba'@'192.168.25.%' identified by ''; #新建用户,允许登录的ip地址段:192.168.25.% 用户名:dba 密码:123456
grant replication slave on *.* to dba@'192.168.25.%'; #赋权限
备份Master数据
首先vi /etc/my.cnf添加如下两行
log-bin=mysql-bin
server-id=4
cd /tmp #备份到tmp文件夹下
#备份到文件all.sql
mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p -h 192.168.25.4 > all.sql
将备份的all.sql复制到从服务器上
scp all.sql [root@]192.168.25.5:\tmp[\all.sql]
Slaver数据库备份数据还原
mysql -uroot -p -h 192.168.25.5 < all.sql
主从配置
more all.sql
登录后执行以下语句
change master to master_host='192.168.25.4', #主服务器ip
master_user='dba', #主服务器建的主从复制mysql用户
master_password='', #主从复制用户名密码
master_log_file='mysql-bin.000005', #mysqldump的备份文件中有
master_log_pos=129058; #mysqldump的备份文件中有
这就完成了主从复制的配置,查看主从配置
show slave status \G;
发现Slave_IO_Running和Slave_SQL_Running进程都没有启动,启动进程
start slave;
如果某个进程启动失败,查看Last_IO_Error会有提示(例如:防火墙开了连接不上,虚拟机克隆mysql的pid一样需要重新initialize等)
主从同步属性
配置好主从同步后会多一个数据库performance_schema
一下表为主要从数据库配置表
连接从数据库,查看从服务器replication_applier_configuration表配置
select * from replication_applier_configuration;
改变同步延迟
stop slave;
change master to master_delay=3600;
start slave;
查看主从同步延迟,为3600秒
查看配置表 select * from replication_applier_configuration;
查看slave状态 show slave status /G;
配置好后查看状态
select * from replication_applier_status;
连接mycat插入操作,会发现主数据库有,从数据库并没有,再次查看表replication_applier_status
多线程复制replication_applier_status_by_coordinator,因为不存在多线程,所以无数据。
查看正在工作的线程,这里只有一条。
查看进程列表
查看连接配置表(即一开始配置的change master属性)
select * from replication_connection_configuration \G;
查看连接状态
select * from replication_connection_status \G;
Mysql5.7基于日志主从复制的更多相关文章
- Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)
之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...
- Mysql5.7基于日志转为基于事务主从复制
将基于日志的复制变更为基于事务的复制 mysql版本要高于5.7.6 gtid_mode要设为off 处理步骤 详细步骤 1.查看主从mysql版本是否高于5.7.6 show variables l ...
- MySQL5.6主从复制搭建基于日志(binlog)
什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数据后,Slave会自动从Master把修改的数据同步过来(有一定的延迟 ...
- MySQL5.7基于binary log的主从复制
MySQL5.7基于binary log的主从复制 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 基于binary log 的复制是指主库将修改操作写入binary log 中, ...
- (转)MySQL 主从复制搭建,基于日志(binlog
原文:http://blog.jobbole.com/110934/ 什么是MySQL主从复制 简单来说,就是保证主SQL(Master)和从SQL(Slave)的数据是一致性的,向Master插入数 ...
- MySQL5.6基于GTID的主从复制配置
全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性. GTID实际上是由UUID+TID组成的.其中UUID是一个MySQL实例的唯一标 ...
- Mysql基于GTID主从复制
Mysql5.6基于GTID全局事务的复制 什么是GTID? GTID(Global Transaction Identifiers)是全局事务标识 当使用GTIDS时,在主上提交的每一个事务都会 ...
- 关于MySQL5.7开启bin-log主从复制
主从复制:一般用于实时备份.也可配合mycat,实现读写分离. 传统的基于 ROW的主从复制 简单说下步骤: master主库配置同步,slave从库配置同步,master锁表/备份,slave恢复数 ...
- 关于Mysql5.6半同步主从复制的开启方法【转】
介绍 先了解一下mysql的主从复制是什么回事,我们都知道,mysql主从复制是基于binlog的复制方式,而mysql默认的主从复制方式,其实是异步复制. 主库实际上并不关心从库是否把数据拉完没有, ...
随机推荐
- Spring基本功能-IOC
一.SpringIOC Spring的控制反转:把对象的创建,初始化,销毁的过程交给SpringIOC容器来做,由Spring容器控制对象的生命周期. 1.1 启动Spring容器的方式: (1)加载 ...
- 《Oracle RAC性能优化》
一 RAC环境 RAC架构,2节点信息 节点1 SQL> show parameter instance NAME TYPE ...
- boost implicit_cast
在stackoverflow上看到这个帖子, 于是发现了boost::implicit_cast这个小东西. 先来看看这段代码: struct top {}; struct mid_a : top { ...
- socketserver 并发连接
socketserver.TCPServer Example server side 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- mac shell
查看所有shell:cat /etc/shells 查看当前正在使用的shell:echo $SHELL 切换shell:chsh -s /bin/zsh
- HDU 2191 珍惜现在,感恩生活(多重背包模板题)
多重背包模板题 #include<iostream> #include<cstring> #include<algorithm> using namespace s ...
- tomcat进程意外退出的问题分析(转)
原文链接:http://hongjiang.info/why-kill-2-cannot-stop-tomcat/ 节前某个部门的测试环境反馈tomcat会意外退出,我们到实际环境排查后发现不是jvm ...
- netty6---序列化与反序列化
package com.cn; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import ja ...
- Python实例1—格式化输出
老男孩教学学习笔记: 实例1:格式化输出 # Author:Alex Li name = input("name:") # raw_input 2.x input 3.x # in ...
- C++之map使用
解析文件或者字符串,一key跟keyvalue来存在map中,如下代码: test.h: #include <map>#include <vector> Class test ...