6月28日

17.1 MySQL主从介绍

MySQL主从介绍

 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,A上写数据,另外一台B也会跟着写数据,两者数据实时同步的

 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

 主从过程大致有3个步骤:

 主将更改操作记录到binlog里;

 从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里;

 从根据relaylog里面的sql语句按顺序执行;

 主上有一个log dump线程,用来和从的I/O线程传递binlog;

 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地;

blob.png 

 

17.2 准备工作

准备工作

1. 准备AB两台机器都安装好mysql并启动,mysql安装详情请查看如下链接。

http://blog.51cto.com/404006045/2125778

 

分别启动mysql

cfkcentos为主,二号机为从

blob.png 

 

17.3 配置主

一、配置主

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

vim  /etc/my.cnf

server-id=130

log_bin=amolinux2

blob.png 

 

 

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

/etc/init.d/mysqld restart

blob.png 

 

 

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

blob.png 

 

 

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

 mysqldump -uroot mysql > /tmp/mysql.sql     备份mysql这个库

 mysql -uroot -e “create database amo”           创建新的amo库

 mysql -uroot amo < /tmp/mysql.sql                  还原amo库回mysql

blob.png 

 

blob.png 

 

 创建用作同步数据的用户:

 grant replication slave on *.* to 'repl'@slave_ip identified by '222222';   

 flush tables with read lock;      

 show master status;                  

blob.png 

 17.4 配置从

配置从

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

vim  /etc/my.cnf

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

blob.png 

 

 

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

/etc/init.d/mysqld restart

blob.png 

 

 

登录到mysql“

mysql -uroot

blob.png 

 

 

 把主上amo库同步到从上

 可以先创建amo库:

blob.png 

 

 

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

mysql -uroot amo < /tmp/mysql.sql

 blob.png

 

 stop slave;

blob.png 

 

实现主从同步的重新操作:

change master to master_host='172.16.17.71', master_user='repl', master_password='222222',master_log_file='amolinux2.000001', master_log_pos='659869';

blob.png 

 

 

再重新开启slave:

start slave;

blob.png 

 

 

检验是否配置成功主从:

show slave status\G

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

blob.png 

 

 

 还要到主上执行 unlock tables

blob.png 

 

 

 从上执行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:

 

 

17.5 测试主从同步

测试主从同步

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

blob.png 

 

 

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

show tables;

blob.png 

 

 

我们以db这个表做实现:

 select count(*) from db;

 truncate table db;

blob.png 

 

 

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

blob.png 

 

 

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

blob.png 

 

 

 select count(*) from db;

blob.png 

 

 

 主上继续drop table db;

blob.png 

 

 

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

blob.png 

 

 

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

blob.png 

 

 

 

主服务器上

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



 

 



猜你喜欢

转载自blog.51cto.com/404006045/2133946
今日推荐