mysql 主从高可用_mysql高可用性之主从复制

1.主从原理

AAffA0nNPuCLAAAAAElFTkSuQmCC

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';

AAffA0nNPuCLAAAAAElFTkSuQmCC

image.png

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

AAffA0nNPuCLAAAAAElFTkSuQmCC

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'的错误

所以只需要配置

AAffA0nNPuCLAAAAAElFTkSuQmCC

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命令查看日志情况

正常情况如下

AAffA0nNPuCLAAAAAElFTkSuQmCC

image.png

不正常时候last_IO_Error会报错

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

AAffA0nNPuCLAAAAAElFTkSuQmCC

image.png

从数据库得到

AAffA0nNPuCLAAAAAElFTkSuQmCC

image.png

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

作者:阿卡摩西

链接:https://www.jianshu.com/p/8a1b55277d37

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值