1.MySQL主从介绍
MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步
MySQL主从是基于binlog的,主上须开启binlog才能进行主从
主从过程大致有3个步骤:
主将更改操作记录到binlog里
从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里
从根据relaylog里面的sql语句按顺序执行
主(master)上有一个log dump线程,用来和从的I/O线程传递binlong
从(slave)上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个sql线程用来把relaylog里面的sql语句落地
2.配置主
1).在主文件的/etc/my.cnf下面添加一个server-id=128这里这里要和从的server-id的命令要不一样并在主的/etc/my.cnf配置文件里面添加一段log_bin=aminglinux01,添加好之后进行重启mysql服务,这里使用/etc/init.d/mysqld restart
2).下面进行备份一些数据方便我们后面进行实验,后面我们要把备份的数据进行恢复到新创建的mysql的数据库里面,还要创建一个mysql用户并给定一些权限
3).锁定主配置上面的mysql的数据是为了能够更好地进行同步等下面从配置上面配置好了再进行解锁,这里还要查看一下查看一下master用命令show master status;下面进行配置从的时候要status的里面的数据
3.配置从
1).这里要在从的配置文件/etc/my.cnf下面增加一个server-id就可以了从的配置文件里面不需要bin_log这个配置文件增加好之后要进行重启mysql服务并使用scp命令把主机上面的/tmp/的所有sql文件全部拷到当前主机/tmp/下面
2).把拷贝过来的文件进行数据恢复,在恢复之前要先创建对应的库
3).下面就要启动slave,这里就要用到我们主机上面让我们记住的那两个数据了
这里会遇到一些错误错误的话进行查看日志由于我的出现了错误所以在主的mysql里面进行flush logs然后在进行再从机器上面进行重新配置change master... 之后再重启slave并查看状态
下面要在主的机器上面进行unlock tables,进行做这一步是因为前面我们执行了flush tables with read lock
4.测试主从
1).先在主的机器上进行创建一个库然后再到从的机器上进行查看,如果从的机器上能够显示有这个库说明我们的主从配置是成功的
数据库及表同步也可以指定,主从上命令不同:
主服务器:
binglog-do-db=1,2 //仅同步指定的库1和2
bing-ignore-db=3 //忽略指定的库3
从服务器:
replicate-do-db=
replicate-ignore-db=
replicate-do-table
replicate-ignore-table=
replicate-wild-do-table= // 常用
replicate-wild-ignore-table= // 常用