17.1 MySQL主从介绍 17.2 准备工作 17.3 配置主 17.4 配置从 17.5 测试主从同步

17.1 MySQL主从介绍
17.2 准备工作
17.3 配置主
17.4 配置从

17.5 测试主从同步


MySQL主从介绍:



原理图:

简单来讲写入A(主)机器-----A机器从将写入的sql语句同步到从B机器(从)---是通过什么同步的呢?----A机器的log dump线程和B机器的I/0thread线程进行通信---然后同步到B机器生成一个relaylog(中继日志)---relaylog在写入到B机器的数据库上。



准备工作

准备2台虚拟机分别为A和B机器

,A做主

   B做从

2台都安装mysql


配置主 

1.修改/etc/my.cnf配置文件

          log_bin = AAA        --定义log_bin后会在mysql目录生成文件(设置主从的关键)
         basedir = /usr/local/mysql
         datadir = /data/mysql
         port = 3306                   --定义端口
         server_id = 128            --随意定义

         socket = /tmp/mysql.sock  --定义sock

2.重启mysql服务

    /etc/init.d/mysqld restart 

3.查看/data/mysql目录 下图就是log_bin生成的文件


4.备份数据库做实验:

    mysqldump -uroot -pmysql zrlog > /tmp/zrlog.sql 

5.创建用户

grant replication slave on *.* to 'repl'@'192.168.142.130' identified by 'repl' 

6.锁定库--暂时不写数据(为了保持主从数据同步一致)

flush tables with read lock;

7.查看master状态

show master status;



配置从

1.vim /etc/my.cnf

        只需要修改server-id跟A机器不一样即可(这里我用3307端口)

                server-id=130

                

2.通过scp命令进行数据拷贝到本机

        scp 192.168.142.128:/tmp/*.sql  /tmp 

                    输入密码


3.创建库

create databse zrlog;  ---创建库


mysql-uroot zrlog</tmp/zrlog.sql

4.B机器设置(从)

  • stop slave   
  • master_host='192.168.142.128',master_user='repl',master_password='repl',master_log_file='AAA.000001',master_log_pos=332;     //host为A机器IP(主) user为账户 passwd密码  
  • log_file和log_pos 就是图下这2项数据
  • B机器执行start slave
  • A机器解锁数据库  unlock tables  

5.查看主从同步状态:

show slave status\G;

重点关注:

            ----2项一定要为yes

            ----然后为错误日志


几个配置参数在主从my.cnf设置

主:可支持逗号分隔设置多个

binlog-do-db=      //仅同步指定的库

binlog-ignore-db=  //忽略指定库

从:

replicate_do_db=  //仅同步指定的库

replicate_ignore_db= //忽略指定库

replicate_do_table=  //仅同步指定的表(慎用) --假设表示test.xx 带结尾的也会忽略导致库不完整,so,建议用wild下面2个支持通配。

replicate_ignore_table= //忽略指定的表(慎用)

replicate_wild_do_table=   //同步指定的表支持通配(如test.%) 

replicate_wild_ignore_table=   //忽略指定的表支持通配(如test.%)


测试主从同步

1.在A机器zrlog创建一个表

create table t3 (`id` int(4), `name` char(40));  ---创建表

show tables;   --查看表

如图多了个t3


2.在B机器查看是否同步

use zrlog  --切换表

show tables; --查看表 

可以看图B机器也同步了t3的表


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值