【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并启动(安装参考之前mysql安装方法)

主库mysql启动:


从库mysql启动:



我们以2机器作为主库,1机器作为从库:



三、配置主

 修改my.cnf配置文件并增加内容:

vim  /etc/my.cnf

server-id=130

log_bin=amolinux2



 修改完配置文件后,启动或者重启mysqld服务:

/etc/init.d/mysqld restart



使用ls -lt 查看一下是否生成文件:



 把mysql库备份并恢复成amo库,作为测试数据:

 mysqldump -uroot mysql > /tmp/mysql.sql     备份mysql这个库
 mysql -uroot -e “create database amo”           创建新的amo库
 mysql -uroot amo < /tmp/mysql.sql                  还原amo库回mysql



 创建用作同步数据的用户:
 grant replication slave on *.* to 'repl'@slave_ip identified by '222222';   
 flush tables with read lock;      
 show master status;                  



四、配置从

修改my.cnf配置文件并增加内容:

vim  /etc/my.cnf

server-id=132           要求和主不一样


 

修改完配置文件后,启动或者重启mysqld服务:

/etc/init.d/mysqld restart



登录到mysql“

mysql -uroot



 把主上amo库同步到从上
 可以先创建amo库:



然后把主上的/tmp/mysql.sql拷贝到从上,然后导入amo库:

mysql -uroot amo < /tmp/mysql.sql
 



 stop slave;


实现主从同步的重新操作:
change master to master_host='172.16.17.71', master_user='repl', master_password='222222',master_log_file='amolinux2.000001', master_log_pos='659869';



再重新开启slave:

start slave;



检验是否配置成功主从:

show slave status\G

(这两行显示两个yes代表OK)



 还要到主上执行 unlock tables



 从上执行mysql -uroot
 show slave stauts\G


 看是否有:
 Slave_IO_Running: Yes
 Slave_SQL_Running: Yes


 还需关注:
 Seconds_Behind_Master: 0  //为主从延迟的时间
 Last_IO_Errno: 0
 Last_IO_Error:
 Last_SQL_Errno: 0
 Last_SQL_Error:


五、测试主从同步

登录到到主上再切换到amo:



先查看一下数据库有哪些表:

show tables;



我们以db这个表做实现:
 select count(*) from db;
 truncate table db;



 登录到到从上再切换到amo:



再查看一下从上的数据库的表:



 select count(*) from db;



 主上继续drop table db;



然后查看一下主上的db表,已经没有了:



 再到从上查看db表,发现也没有了:




主服务器上
binlog-do-db=      //仅同步指定的库
binlog-ignore-db= //忽略指定库
从服务器上
replicate_do_db=
replicate_ignore_db=
replicate_do_table=
replicate_ignore_table=
replicate_wild_do_table=   //如aming.%, 支持通配符%
replicate_wild_ignore_table=


遇到主从不能正常同步,提示uuid相同的错误。这是因为克隆机器导致:

https://www.2cto.com/database/201412/364479.html 


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值