MySQL主从配置

17.1 MySQL主从介绍

MySQL主从又叫作Replication、AB复制。简单讲就是A和B两台机器作主从后,在A上写数据,另一台B也会跟着写数据,二者数据实时同步的  MySQL主从是基于binlog的,主上须开启binlog才能进行主从。  mysql

主从过程大体有3个步骤web

 1)主将更改操做记录到binlog里sql

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

 3)从根据relaylog里面的sql语句按顺序执行  主上有一个log dump线程,用来和从的I/O线程传递binlog  从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另一个SQL线程用来把relaylog里面的sql语句落地。ide

MySQL主从配置原理图:测试


17.2 准备工做

咱们准备两台机器,192.168.6.120为主配置,192.168.6.123为从配置。两台机器都安装MySQL并启动。spa

 


17.3 配置主

安装mysql  线程

修改my.cnf,增长server-id=120和log_bin=zhangjin13d

 

修改完配置文件后,启动或者重启mysqld服务  把mysql库备份并恢复成zhangjin库,做为测试数据server

 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql  

mysql -uroot -p123456 -e “create database zhangjin”  

mysql -uroot -p123456 zhangjin < /tmp/mysql.sql

 

而后进入MySQL建立用做同步数据的用户  

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

flush tables with read lock;  

show master status;

退出MySQL,而后把/data/mysql/目录下的zhangjin和zrlog也做一个备份:


17.4 配置从

安装mysql  

查看my.cnf,配置server-id=123,要求和主不同

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

把主上zhangjin库同步到从上

 

能够先建立zhangjin库,而后把主上的/tmp/mysql.sql拷贝到从上,而后导入zhangjin库  

而后登陆MySQL

mysql -uroot  

输入如下命令:

stop slave;  

change master to master_host='192.168.6.120', master_user='repl',master_password='123456', master_log_file='zhangjin1.000002', master_log_pos=667359;

start slave;  

那么,怎么知道主从配置成功了呢?输入命令show slave status \G,若是能够看到两个yes,则说明主从配置成功。

几个配置参数

主服务器上  

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

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

从服务器上  

replicate_do_db=  

replicate_ignore_db=  

replicate_do_table=  

replicate_ignore_table=  

replicate_wild_do_table=   //如zhangjin.%, 支持通配符%  

replicate_wild_ignore_table=

 

而后到主上执行如下MySQL命令:

unlock tables;

至此,主从配置就已经完成。


17.5 测试主从同步

主上 mysql -uroot 123456    

select count(*) from website;  

truncate table website;  

而后到从上登陆 mysql -uroot

select count(*) from website;  

主上继续drop table website;  

从上查看表show tables;

能够看到website表也被删除了。

相关文章
相关标签/搜索