单个mysql数据库在处理业务的时候肯定是有限的,这时我们扩展数据库的第一种方式就是对数据库做读写分离(主从复制),本文我们就先来介绍下怎么来实现mysql的主从复制操作。

1. 读写分离

原理:需要搭建主从模式,让主数据库(master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(slave)处理 SELECT 查询操作。

??Mycat 配合数据库本身的复制功能,可以解决读写分离的问题。

2.主从备份概念

什么是主从备份: 就是一种主备模式的数据库应用.

主库(Master)数据与备库(Slave)数据完全一致.

实现数据的多重备份, 保证数据的安全.

可以在 Master[InnoDB]和 Slave[MyISAM]中使用不同的数据库引擎,实现读写的分离

InnoDB:支持事务处理

MyISAM:不支持事务处理

2.1 MySQL5.5, 5.6 版本后本身支持主从备份

在老旧版本的 MySQL 数据库系统中,不支持主从备份,需要安装额外的 RPM 包.如果需要安装 RPM,只能在一个位置节点安装.

2.2 主从备份目的

2.2.1 实现主备模式

保证数据的安全. 尽量避免数据丢失的可能.

2.2.2 实现读写分离

使用不同的数据库引擎,实现读写分离.提高所有的操作效率.

??InnoDB 使用 DML 语法操作. MyISAM 使用 DQL 语法操作.

2.3 主从备份效果

2.3.1 主库操作同步到备库

所有对 Master 的操作,都会同步到 Slave 中.如果 Master 和 Salve 天生上环境不同,那么对 Master 的操作,可能会在 Slave 中出现错误如: 在创建主从模式之前,Master 有 database : db1, db2, db3. Slave 有 database: db1, db2.创建主从模式.现在的情况 Master 和 Slave 天生不同.主从模式创建成功后,在 Master 中 drop database db3. Slave 中抛出数据库 SQL 异常.后续所有的命令不能同步.一旦出现错误. 只能重新实现主从模式.

2.4 主从模式下的逻辑图

3. MySQL主从模式搭建

3.1 安装MYSQL

mysql安装教程:

https://blog.csdn.net/weixin_45600622/article/details/102647528

环境地址:

主节点:192.168.88.180

从节点:192.168.88.181

3.2 主库配置修改(Master)

路径:/etc/my.cnf

3.2.1 server_id配置

本环境中 server_id 是 1

MySQL 服务唯一标识

配置要求:

server_id 任意配置,只要是数字即可

server_id Master 唯一标识数字必须小于 Slave 唯一标识数字.

3.2.2 log_bin配置

本环境中 log_bin 值 : master_log

开启日志功能以及日志文件命名,log_bin=master_log

变量的值就是日志文件名称.是日志文件名称的主体.

MySQL 数据库自动增加文件名后缀和文件类型.

3.2.3 重启mysql

service mysql restart

3.2.4 登录mysql

从mysql的安装路径下进入

./bin/mysql -uroot -h127.0.0.1 -p123456

3.2.5 创建用户

在 MySQL 数据库中,为不存在的用户授权,就是同步创建用户并授权.

此用户是从库访问主库使用的用户

ip 地址不能写为%. 因为主从备份中,当前创建的用户,是给从库 Slave 访问主库 Master使用的.用户必须有指定的访问地址.不能是通用地址.

grant all privileges on *.* to ‘username’@’ip’ identified by ‘password’ with grant option;

flush privileges;

grant all privileges on *.* to 'myslave'@'192.168.88.181' identified by 'myslave' with grant

option;

flush privileges;

3.2.6 查看用户

use mysql;

select host, user from user;

3.2.7 查看 Master 信息

master_log.00003就是主从复制中从数据库要读取的日志文件。

注意:关闭防火墙或在防火墙中开放 3306 端口

3.3 从库配置修改(slave)

3.3.1 修改my.cnf的server_id

从库的 server_id要比主库中的server_id的值要大

然后重启mysql服务

3.3.2 连接mysql服务

3.3.3 停止 Slave 功能

stop slave

3.3.4 配置主库信息

需要修改的数据是依据 Master 信息修改的.ip 是 Master 所在物理机 IP. 用户名和密码是Master 提供的 Slave 访问用户名和密码. 日志文件是在 Master 中查看的主库信息提供的.在Master 中使用命令 show master status 查看日志文件名称.

change master to master_host=’ip’, master_user=’username’, master_password=’password’, master_log_file=’log_file_name’;

3.3.5 启动 Slave 功能

start slave;

3.3.6 查看 Slave 配置

show slave status \G; # \G 行转列

注意:如果输出中有如下提示:

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

原因是以为两个数据库是克隆出来的,所以uuid是一致的,这时只需要删除掉一个uuid即可,具体如下:

把auto.cnf 注释掉或者删除掉,重启mysql就会重新分配!

4. 主从测试

4.1 创建数据库同步

在master上新建一个数据库,然后查看slave中是否也有即可

create database demo2 default character set utf8;

4.2 创建table同步

create table t_user (id varchar(20),name varchar(20));

4.3 数据操作同步

insert into t_user (id,name)values('666','bobo');

通过演示我们发现主数据库的修改会及时的同步到从数据库,这样mysql的主从配置就OK了,好了本文就到此,下篇来详细介绍一下MyCat的安装与配置

关注微信公众号【程序员的梦想】,专注于Java,SpringBoot,SpringCloud,微服务,Docker以及前后端分离等全栈技术。

主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93相关推荐

  1. mysql image类型_MyCat教程【mysql主从复制实现】

    原文:http://iii75.cn/mwQhBW 作者:波波烤鸭 历史相关文章 Mycat入门教程 单个mysql数据库在处理业务的时候肯定是有限的,这时我们扩展数据库的第一种方式就是对数据库做读写 ...

  2. mysql全备和指定库和表备份,mysql日志的分类简介和作用, mysql加速跳过域名解析,mysql权限授予与收回,数据库实用篇~~Tring

    mysql改密,重置,备份,权限和日志 改密~ 修改密码 重置密码 步骤 数据库备份 用到的命令: 可加参数 : -A 参数 例子: -B 参数 例子: 备份指定数据库的某个表 恢复表 创建用户 操作 ...

  3. mysql启动命令指定data目录_CentOS 7下MySQL的data目录更改后,使用mysqld服务启动失败...

    在CentOS 7系统下,通过rpm和yum命令安装MySQL,一般会采取service mysqld start命令来启动MySQL.在MySQL的配置文件/etc/my.cnf中,默认的data路 ...

  4. mysql英文怎么发音_mysql5.5安装教程:mysql下载与安装

    目录 第一步:安装前清理环境 第二步:现在Mysql5.5.62安装包 第三步:安装Mysql5.5.62 第四步:Mysql环境变量配置 第五步:启动Mysql数据库服务 本文将介绍Mysql5.5 ...

  5. mysql下载云盘_mysql5.5安装教程:mysql下载与安装

    目录 第一步:安装前清理环境 第二步:下载Mysql5.5.62安装包 第三步:安装Mysql5.5.62 第四步:Mysql环境变量配置 第五步:启动Mysql数据库服务 本文适合人群:想要学习My ...

  6. MySQL创建数据库指定编码和排序规则,mysql数据库密码重置

    MySQL 数据库基本使用 mysql 数据库创建与密码重置 ① 数据库登录与密码设置 ② 数据库创建并指定编码和排序规则 ③ 切换数据库 ④ 删除数据库 ⑤ 创建用户 ⑥ 给用户授权 mysql 数 ...

  7. java mysql查询试题_java 面试题三十二 mysql查询面试题

    题一: 新建学生-课程数据库的三个表: 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) Sno为主码; 课程表:Course(Cno,Cname,Cpno,Credeit ...

  8. oracle ddl会被什么阻塞,MySQL Online DDL与DML并发阻塞关系总结

    MySQL Online DDL与DML并发阻塞关系总结MySQL DDL操作执行的三种方式 1,INPLACE,在进行DDL操作时,不影响表的读&写,可以正常执行表上的DML操作,避免与CO ...

  9. windows 7下如何卸载重装mysql 压缩包版百度经验_windows下安装、卸载mysql服务的方法(mysql 5.6 zip解压...

    MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的.很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾 ...

最新文章

  1. php 商务网站购物车联动地址
  2. pytorch教程之nn.Module类详解——使用Module类来自定义网络层
  3. [投稿]谱减法语音降噪原理
  4. 个人网络安全从业心得
  5. Xamarin 打包生成 Android apk 文件
  6. linux光盘挂载加载过程,如何在Linux系统下挂载光盘
  7. vs2010开发activex(MFC)控件/ie插件(一)
  8. 【Python学习】最新版pyecharts之绘制Map地图
  9. SRAM和DRAM详解
  10. 工厂模式演进以及部分使用场景(简单工厂,工厂方法,抽象工厂)
  11. python培训课程-python培训课程
  12. 爱荷华州立大学计算机科学,2019上海软科世界一流学科排名计算机科学与工程专业排名爱荷华州立大学排名第301-400...
  13. 计算机组成原理补码减法,补码加减法运算(计算机组成原理).ppt
  14. 如何给win10桌面添加便签,win10桌面添加便签的方法
  15. spaCy 2.1 中文NLP模型
  16. 机器学习之过拟合和欠拟合
  17. BAT后台开发 两年工作经历总结
  18. (八)QRJDC正式版/QQ扫码登录直达青龙/Docker上的部署教程/很干很干/没水喝【2020年5月1日】
  19. STM32寄存器配置USART1串口及USART->BRR值的计算
  20. obs弹幕助手android版,obs弹幕助手

热门文章

  1. Java编程的逻辑 (36) - 泛型 (中) - 解析通配符
  2. bzoj3410[Usaco2009 Dec]Selfish Grazing 自私的食草者*
  3. 05传智_jbpm与OA项目_部门模块中增加部门的jsp页面增加一个在线编辑器功能
  4. keepalived实现lvs高可用并负载均衡lamp
  5. 【转】使用dos2unix批量转换文件
  6. answer my questions from the book构建之法.
  7. 模拟input type=file
  8. 迅速解决!!!!!启动Tomcat报错PermGen space
  9. Ubuntu update case the virtualbox crash
  10. CSS浏览器兼容问题集-第四部分