MySql配置主从

Mysql主从配置

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语句落地

MySQL主从原理图

image-20210312103359799

MySQL主从配置

  • vi /etc/my.cnf编辑配置文件

    • basedir = /usr/local/mysql
      datadir = /data/mysql
      port = 3306
      server_id = 130
      socket = /tmp/mysql.sock
      log_bin=linux1
      
  • /etc/init.d/mysqld restart重启mysql服务

  • ll /data/mysql/查看

    • image-20210312103616594
  • 添加环境变量 vim /etc/profile 添加

    • export PATH=$PATH:/usr/local/mysql/bin
      
    • source /etc/profile刷新配置

  • mysqldump -uroot mysql > /tmp/mysql.sql导出mysql的数据信息

  • mysql -uroot -e "create database kei"创建数据库kei

  • mysql -uroot kei < /tmp/mysql.sql将mysql的数据导入kei数据库中

  • 进入数据库执行 grant replication slave on *.* to 'repl' @192.168.207.130 identified by '123456';创建用作同步数据的用户并赋予权限,IP地址为从节点的地址(replication是MySQL非常出色的一个功能,该功能将一个MySQL实例中的数据复制到另一个MySQL实例中。)

image-20210312084236191

  • flush tables with read lock; 将表锁住 保持数据不变

    • image-20210312084013858
  • show master status; 查看主机状态

image-20210312084050151

从配置

  • vi /etc/my.cnf

    • basedir = /usr/local/mysql
      datadir = /data/mysql
      port = 3306
      server_id = 131
      socket = /tmp/mysql.sock
      
    • /etc/init.d/mysqld restart 重启mysql服务

scp 主的ip+文件目录  本机接收目录
  • scp /tmp/mysql.sql root@192.168.37.13:/tmp/ 在主上执行将tmp/mysql.sql文件复制到从机上

image-20210312091944317

  • mysql -uroot -e "create database kei"创建一样的数据库

  • mysql -uroot kei < /tmp/mysql.sql导入一样的数据库

  • mysql -uroot stop slave;停止slave服务

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

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

  • show slave status\G

  • image-20210312101809934

  • unlock tables;在主上执行 解锁表

检验主从配置是否正常

  • 使用命令进行测试 主 从同时执行

mysql> use kei;

mysql> show tables;

mysql> select count(*) from db;

  • 主上操作,删除数据 mysql> truncate table db;

image-20210312092241861

image-20210312103130847

image-20210312103107056

posted @ 2021-03-12 11:09  錵開や落幕  阅读(58)  评论(0编辑  收藏  举报