美文网首页mysql 知识库程序员
mysql高可用性之主从复制

mysql高可用性之主从复制

作者: 阿卡摩西 | 来源:发表于2018-03-08 20:19 被阅读123次

1.主从原理

image.png
从库生成两个线程,一个I/O线程,一个SQL线程;
i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;
主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;
SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;

2.主从用途
mysql主从复制用途

  • 实时灾备,用于故障切换
  • 读写分离,提供查询服务
  • 备份,避免影响业务

3.基础配置
环境 Linux centos 7+
A主数据库IP:192.168.111.111;

B从数据库IP:192.168.111.116;

4.配置主数据库A

启动mariadb.service;

1.添加一个同步账户

GRANT FILE ON . TO ‘yezt’@'192.168.111.116' IDENTIFIED BY ‘123456’;

GRANT REPLICATION SLAVE ON . TO ‘yezt’@'192.168.111.116' IDENTIFIED BY ‘123456’;

创建A数据库用户

create user 'yezt'@'%' identidied by '123456';

授权用户

grant all privileges on . to 'yezt'@'%' with grant option

2.添加一个数据库作为同步数据库

create database test;

3.创建一个表结构

create table mytest (username varchar(20),password varchar(20));

4.修改配置文件(/etc/my.cnf)

[mysqld]

server-id=1

log-bin=mysql-bin

binlog-do-db=test #要同步的数据库

5.重启服务

systemctl restart mariadb.service

进入数据库查看server-id;

mariadb>show variables like 'server_id';

image.png

6.用show master status\G命令查看日志情况

image.png

(可以用flush logs 命令来刷新得到最新的mysql-bin.000008文件)

5.设置从数据库B为slave

1.重复A的创建数据库和表结构

3.修改配置文件

Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数;如果配置my.cnf会出现 [ERROR] /usr/local/webserver/mysql/libexec/mysqld: unknown variable 'master-host=192.168.111.111'的错误

所以只需要配置

image.png

之后在数据库执行

mariadb>change master to master_host='192.168.111.111', master_user='yezt', master_password='123456', master_log_file='mysql-bin.000008', master_log_pos=0;

(备注:master_log_file需要和主数据库一致,否则重新到A那flush logs,master_log_pos要设置为了,否则开始位置会出问题)

启动slave

start slave

6.用show slave status\G命令查看日志情况

正常情况如下

image.png

不正常时候last_IO_Error会报错

用生成的账户登录A数据库插入数据

image.png

从数据库得到

image.png

备注:如果从数据无法连接主数据库,尝试先关闭主数据库的防火墙

systemctl stop firewalld.service

相关文章

  • Mycat2学习3-搭建一主一从读写分离

    我们通过 Mycat 和 MySQL 的主从复制配合搭建数据库的读写分离,实现 MySQL 的 高可用性。我们将搭...

  • MySQL高可用性大杀器之MHA

    MySQL高可用性大杀器之MHA 提到MySQL高可用性,很多人会想到MySQL Cluster,亦或者Heart...

  • MySql高可用学习(一):linux下mysql主从配置

    简介 MySQL 的主从复制可以实现mysql的多种高可用性,如数据库的读写分离 ,在线热备,负载均衡,数据分布 ...

  • MySQL-lesson08-主从复制基础

    MySQL-lesson08-主从复制基础 0.企业高可用性标准 *** 0.1 全年无故障率(非计划内故障停机)...

  • 主从复制基础

    0. 企业高可用性标准(全年故障率) 0.1企业级高可用方案 1.主从复制的简介** 2.主从复制的前提(主从复制...

  • MySQL集群篇

    1 集群之主从复制 1.1 主从复制概述 MySQL主从复制也可以称为MySQL主从同步,它是构建数据库高可用集群...

  • 主从复制

    主从复制基础 企业高可用性标准全年无故障率(非计划内故障停机) 企业级高可用架构方案 主从复制简介 ☆☆☆☆☆ 说...

  • mysql高可用性之主从复制

    1.主从原理 2.主从用途mysql主从复制用途 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业...

  • mysql-高可用架构类设计中会遇到的问题???

    高可用架构类设计 问题一: mysql 的主从复制是如何工作的??? mysql 主从复制的实现原理异步复制半同步...

  • MySQL之:高可用

    MySQL 高可用 Master HA 或多主模型 MMM:Multi Master MySQL,基于主从复制实现...

网友评论

  • 半夏风痕:请问楼主,这个主数据库的binlog打印的是什么日志?是上层业务操作数据库的日志吗?

本文标题:mysql高可用性之主从复制

本文链接:https://www.haomeiwen.com/subject/zpzyfftx.html