四、Mysql主从同步
一、MySQL Replication介绍
MySQL Replication
Replication可以实现将数据从一台数据库服务器(master)复制到一或多台数据库服务器(slave)
默认情况下属于异步复制,无需维持长连接 通过配置,可以复制所有的库或者几个库,甚至库中的一些表 是MySQL内建的,本身自带的
三个步骤:
(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,修改salve上的数据。
二、MySQL的主从配置
数据库的主从配置
1、准备和注意事项
MySQL的主从复制是通过binlog日志来实现的,
主从复制中的"主"指的是MySQL主服务器上的数据库,
"从"指的是MySQL从服务器上的数据库,且这种复制是基于数据库级别的,
为此从服务器中的数据库名称必须和主服务器中的数据库名称保持一致,那么,要想实现主从复制,
我们至少要有两个MySQL服务器
(最好是两个MySQL服务器分别位于不同的主机上,或者在一个主机上安装两个MySQL,端口不同即可)。
安装5.8的
https://blog.csdn.net/Fanpei_moukoy/article/details/81054231
具体步骤
1、官网:https://dev.mysql.com/
2、拉到网页底部,找到自己操作系统的版本,这里我选择linux7版本,右侧有个download按钮,鼠标单击进入下载页面


在网页看到是否登录进行下载,我们不登录,看到下面提示“不,谢了,我直接下载”,不要单击,鼠标放在上面,单击右键选择复制链接,拿到链接地址
3、在终端中使用wget命令直接下载
wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
务必要http方式下载 ,不然本地安装失败

4、添加mysql yum库到系统—Adding the MySQL Yum Repository(因为下载是rpm格式包)
格式:sudo rpm xxx.rpm

5、yum repolist all | grep mysq 查看
6、使用命令yum install安装
sudo yum install mysql-community-server
-------------------------------------------------------------------------------------------------------------------------------------
上面的配置略过,一台linux 从新搭建2个mysql版本不同的端口
-------------------------------------------------------------------------------------------------------------------------------------
2、Mysql主服务器配置
2.1、修改my.conf文件

在[mysqld]段下添加:
#主从复制的数据库的名字
binlog-do-db=master
#忽略mysql数据库
binlog-ignore-db=mysql
#启用二进制日志
log-bin=mysql-bin
#服务器唯一ID,一般取IP最后一段
server-id=16
2.2、重启mysql服务
service mysqld restart
2.3、创建一个用于slave和master通信的用户账号即授权数据复制的用户,使用master分配的用户账号读取master二进制日志。
mysql> CREATE USER 'repl'@'192.168.199.198' IDENTIFIED WITH mysql_native_password BY 'Ron_master_1';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.199.198';
2.4、刷新权限
mysql> FLUSH PRIVILEGES;
2.5、查询master的状态
mysql> show master status;

注意:这里会生成二进制文件,mysql-bin.000004,指明了position为120,Binlog_Do_DB是master,小编就在这里出了错误,修改了my.conf后,没有重新启动mysql的服务,就没有产生新的二进制文件。
3、从库配置
3.1、修改my.conf文件
mysql>change master to master_host='192.168.137.16',master_port=3306,master_user='backup',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=120;
3.2、配置连接
mysql>change master to master_host='192.168.137.16',master_port=3306,master_user='backup',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=120;
注意语句中间不要断开,master_port为mysql服务器端口号(无引号),master_user为执行同步操作的数据库账户,“120”无单引号(此处的120就是show master status 中看到的position的值,这里的mysql-bin.000001就是file对应的值)。
3.3、启动从服务器复制功能
Mysql>start slave;
3.4、检查从服务器复制功能状态:
mysql> show slave status
……………………(省略部分)
Slave_IO_Running: Yes //此状态必须YES
Slave_SQL_Running: Yes //此状态必须YES
……………………(省略部分)
注:Slave_IO及Slave_SQL进程必须正常运行,即YES状态,否则都是错误的状态(如:其中一个NO均属错误)。
三、mycat配置Mysql读写分离
当MySQL按照之前的主从复制方式配置好集群以后,可以开启Mycat的读写分离机制,Mycat 1.4 支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,以以下的配置为例,表明一个从节点hostS1与一个主节点hostM1组成了标准的一主一从的读写分离模式:
四、Mysql主从同步的更多相关文章
- 三十四.MySQL主从同步 、主从同步模式
mysql51:192.168.4.51 主 mysql52:192.168.4.52 从 mysql50:192.168.4.50 客户机 1.MySQL一主一从 1.1 51,52 安装m ...
- mysql 主从同步-读写分离
主从同步与读写分离测试 一. 实验环境(主从同步) Master centos 7.3 192.168.138.13 Slave ...
- mysql 主从 同步原理及配置
一.在mssql 里头实现同步镜像,只能主库用而镜像库不能同时用,而mysql 主从同步可以实现 数据库的读写分离,主库负责 update insert delete ,从库负责select 这样一来 ...
- MySQL主从同步那点事儿
一.前言 关于mysql主从同步,相信大家都不陌生,随着系统应用访问量逐渐增大,单台数据库读写访问压力也随之增大,当读写访问达到一定瓶颈时,将数据库的读写效率骤然下降,甚至不可用;为了解决此类问题,通 ...
- 基于mysql主从同步的proxy读写分离
mysql-proxy 简介 MySQL Proxy是一个处于你的client端和MySQL server端之间的简单程序,它可以监测.分析或改变它们的通信.它使用灵活,没有限制,常见的用途包括:负载 ...
- windows 系统本地做mysql 主从同步,最后面解决主从同步库名不一致,表结构一致
原文:windows 系统本地做mysql 主从同步,最后面解决主从同步库名不一致,表结构一致 mysql主从同步的好处以及原理 之前看到很多新闻说某某的服务器奔溃,磁盘碎了,导致数据丢失 ...
- mysql主从同步原理及错误解决
mysql主从同步的原理: 1.在master上开启bin-log日志功能,记录更新.插入.删除的语句. 2.必须开启三个线程,主上开启io线程,从上开启io线程和sql线程. 3.从上io线程去连接 ...
- MySQL主从同步、读写分离配置步骤、问题解决笔记
MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记: 现在使用的两台服务器已经 ...
- zabbix利用percona-toolkit工具监控Mysql主从同步状态
一.下载percona-toolkit工具包 percona-toolkit是一组高级命令行工具的集合,可以查看当前服务的摘要信息,磁盘检测,分析慢查询日志,查找重复索引,实现表同步等等. [root ...
- Linux下的MySQL主从同步
网上一些关于Linux下的MySQL主从同步教程非常之多,有些很简单的配置却弄的非常复杂,有些根本无法配通,下面是我通过简单的配置完成的主从同步过程,大家可以参考,此文章更适用于新手. 一.测试环境: ...
随机推荐
- Shell 文本处理三剑客之grep
grep ♦参数 -E,--extended-regexp 模式是扩展正则表达式 -i,--ignore-case 忽略大小写 -n,--line-number 打印行号 -v,--invert-ma ...
- 用 virtualenv 创建隔离的 Python 运行环境
以 Ubuntu 14.04 系统为例,安装的 Python 和 Python3 分别是 2.7.6 和 3.4.3, 但有些项目,有些模块要求特定的 Python 版本.而当前系统默认的 Pytho ...
- Sharding-JDBC实践(一)简介
转载自:ShardingSphere官网 目录 一.介绍 1. Sharding-JDBC 2. Sharding-Proxy 3. Sharding-Sidecar(TBD) 4. 混合架构 二.功 ...
- C# — Socket通信实现
昨天晚上在网上查找资料,简单实现了C#开发的Socket通信,以下是具体的开发流程,我使用的是VS2017进行开发的: 一.服务器端: 1.新建一个项目,Windows控制台程序 2.重命名cs文件 ...
- [MicroPython]TurnipBit开发板DIY自动浇水系统
1.实验目的: ?学习在PC机系统中扩展简单I/O 接口的方法 ?学习TurnipBit拼插编程 ?学习土壤传感器的工作原理以及使用方法 2.所需原器件: TurnipBit一块 TurnipBit扩 ...
- keystone系列二:HTTP协议
一 为何要学习HTTP协议 http协议就是通信的双方共同遵守的标准,就好比要合伙办事的两家公司签署的合同. openstack中各组件是基于restful api通信的,restful api可以单 ...
- JS中AOP的实现和运用
在编写js的时候,我们有时会遇到针对某种场景做处理,比如在方法开始的时候校验参数,执行方法前检查权限,或是删除前给出确认提示等等.这些校验方法.权限检测.确认提示,规则可能都是相同的,在每个方法前去调 ...
- JenKins自动化构建部署流程参考
Jenkins工作流程 程序员提交代码到Git/SVN仓库,触发钩子程序向 JenKins 进行通知,Jenkins 调用Git/SVN插件获取源码,调用Maven打包为war包,调用Deploy t ...
- ZooKeeper: 简介, 配置及运维指南
1. 概览 ZooKeeper是一个供其它分布式应用程序使用的软件, 它为其它分布式应用程序提供所谓的协调服务. 所谓的协调服务, 是指ZooKeeper的如下能力 naming 命名 configu ...
- python 获取lazada菲律宾站地址库
import urllib3 import requests import ast import time # 因为lazada返回的数据是json类型,通过解码成字符串类型,为了方便数据操作,使用字 ...