Mysql主从配置

Mysql主从配置

1.MySQL主从介绍

  • MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的
  • MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
  • 主从过程大致有3个步骤
    1)主将更改操作记录到binlog里
    2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里中继日志
    3)从根据relaylog里面的sql语句按顺序执行
  • 主上有一个log dump线程,用来和从的I/O线程传递binlog
  • 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地
  1. MySQL主从原理图
    在这里插入图片描述

3.MySQL主从配置

  • 主配置(安装完mysql的虚拟机)
    基础配置`
# vi /etc/my.cnf

编辑配置文件
log_bin=linux1,删除log_bin前的注释
在这里插入图片描述

# /etc/init.d/mysqld restart
# ll /data/mysql/      //查看此文件

在这里插入图片描述
重启mysqld服务

#/etc/init.d/mysqld restart
# vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
# source /etc/profile
# mysqldump -uroot -p mysql > /tmp/mysql.sql

备份mysql库(加入环境变量)
在这里插入图片描述

# mysql -uroot -e "create database kei"

创建一个库保存数据

# mysql -uroot kei < /tmp/mysql.sql

将mysql库恢复成新建的库,作为测试数据
数据库配置

# mysql -uroot

进入数据库

>grant replication slave on *.* to 'repl' @192.168.37.13 identified by '123456';

在这里插入图片描述

创建用作同步数据的用户并赋予权限,IP地址为从节点的地址(replication是MySQL非常出色的一个功能,该功能将一个MySQL实例中的数据复制到另一个MySQL实例中。

>flush tables with read lock;

在这里插入图片描述
将表锁住,保持表内数据不变

show master status;

显示主机状态
在这里插入图片描述
刚开始做显示上图000001,下图为报错重做后增到000008
在这里插入图片描述
//后面从配置时使用红框中的代码

  • 从配置(安装完mysql的虚拟机)
    基础配置
# vi /etc/my.cnf

编辑配置文件
在这里插入图片描述

# /etc/init.d/mysqld restart

重启mysqld服务
在这里插入图片描述

# scp /tmp/mysql.sql root@192.168.243.130:/tmp/

在主上将文件拷贝到从上,并在从上查看文件大小是否一致
在这里插入图片描述

# mysql -uroot -e "create database kei"

//创建一个和主一样的库
在这里插入图片描述

# mysql -uroot kei < /tmp/mysql.sql

将文件内容导入库
数据库配置

# mysql -uroot
mysql> stop slave;

进入数据库(没有密码)(698861为show master status;中的大小)

mysql> change master to master_host='192.168.37.12',master_user='repl',master_password='123456',master_log_file='linux1.000001',master_log_pos=698861;
mysql> start slave;

在这里插入图片描述

关闭防火墙和selinux

mysql> show slave status\G

在这里插入图片描述

mysql> unlock tables;

再主上执行解锁表
在这里插入图片描述
4.检验主从配置是否正常
从上操作

mysql> show slave status\G

在从上执行命令,查看(将防火墙关闭)
在这里插入图片描述
主、从同时操作

mysql> use kei;
mysql> show tables;
mysql> select count(*) from db;

主上操作,删除数据

mysql> truncate table db;
mysql> select count(*) from db;

从上查看数据

mysql> select count(*) from db;

在这里插入图片描述
也可drop table尝试看看

5.几个配置参数

  • 主服务器上
    在这里插入图片描述

  • 从服务器上
    在这里插入图片描述

6.测试主从

  • 主服务器上
# mysql -uroot -p密码

在主上进入数据库

> select count(*) from db;
> truncate table db;

在这里插入图片描述

  • 从服务器上
# mysql -uroot kei

在从上进入数据库

> select count(*) from db;

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值