码迷,mamicode.com
首页 > 数据库 > 详细

MySQL主从

时间:2018-05-17 00:49:48      阅读:29      评论:0      收藏:0      [点我收藏+]

标签: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语句落地
原理很简单。就是从会把主上的binlog搞到从上来,然后生成自己的中继日志,然后再根据中继日志进行更改,最终达到数据一致。
它主要运用的场景是数据备份和在从上读数据减轻主读的压力。

主从配置---主上的操作

首先在从上安装mysql

配置主

首先修改主上的mysql的配置文件my.cnf,在里面增加server-id=ip的尾数和log_bin=binlog的自定义前缀
修改完配置文件后,启动或者重启mysqld服务
这时候在/data/mysql下会生成两个文件,aminglinux1.000001和aminglinux1.index。
其中.index是索引,这个文件必须有。.000001是二进制文件,他是实现主从的根本,他会不断的生成。

下面我们做实验
首先我们先备份一个库
mysqldump -uroot -p19860127 zrlog > /tmp/zrlog.sql
然后创建一个新库
mysql -uroot -e “create database aming”
然后先将刚才备份的数据导入到新建的库中
mysql -uroot aming < /tmp/mysql.sql

创建用作同步数据的用户
grant replication slave on . to ‘repl‘@从的ip identified by ‘password‘;
然后锁表,目的是不让他继续写数据
flush tables with read lock;
+--------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+--------------------+----------+--------------+------------------+-------------------+
| aminglinux1.000001 | 11691 | | | |
+--------------------+----------+--------------+------------------+-------------------+
这里我们要记住file和position,

配置从

安装mysql 查看my.cnf,配置server-id=132,要求和主不一样。这里也不用配置log_bin,只有主才需要二进制文件,然后重启。
把主上aming库同步到从上
scp 主ip :/tmp/*.sql /tmp/,输入密码,就可以将主上的数据库复制到从上了。
然后进入mysql,建立一个库create database aming;自定义名名字叫aming。
然后恢复数据库mysql -uroot 库名 < /tmp/库名.sql
这里需要注意的是两边的需要复制的库.sql一定要一致
然后登陆从的mysql,开始主从
首先stop slave;
然后进行 change master to master_host=‘主ip‘, master_user=‘repl‘, master_password=‘主密码‘, master_log_file=‘二进制文件名‘, master_log_pos=Position,
最后进行start slave;

查看主从是否正常
show slave status\G
看是否有 Slave_IO_Running: Yes和Slave_SQL_Running: Yes。如果两个有一个不是yes,这说明主从断开了。
还要到主上执行 unlock tables;
这样主从就搭建完毕

测试主从同步
这些参数可以去my.cnf中去更改
主服务器上 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=建议使用

MySQL主从

标签:mysql主从

原文地址:http://blog.51cto.com/13067688/2117225

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!