内容简介:Mysql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。(1)master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);(2) slave将master的binary log events拷贝到它的中继日志(relay lo
简介:
Mysql的 主从同步 是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave 端,另外一个线程(IO线程)在 Master 端。
原理:
(1)master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
(2) slave将master的binary log events拷贝到它的中继日志(relay log);
(3) slave重做中继日志中的事件,将改变反映它自己的数据。
下图描述了复制的过程:
具体配置过程:
1.主库配置:
用vi /etc/my.cnf打开文件,对文件进行修改,在[mysqld]下面进行添加修改:
server-id = 1 # 这是数据库ID,此ID是唯一的,主库默认为1,其他从库以此ID进行递增,ID值不能重复,否则会同步出错; log-bin = mysql-bin # 二进制日志文件,此项为必填项,否则不能同步数据; binlog_format=row # bilog设置为row模式 防止复制出错
2.从库配置:
用vi /etc/my.cnf打开文件,对文件进行修改,在[mysqld]下面进行添加修改:
server_id = 2 log-bin=mysql-bin relay_log=mysql-relay-bin # 不指定以下参数则全库同步 #replicate-do-table=test.test_tb 同步某张表 #binlog-do-db = testcreate 需要同步的数据库,如果需要同步多个数据库;则继续添加此项。 #binlog-ignore-db = mysql 不需要同步的数据库;
3.配置完需要重启主从库
4.主库创建同步账号:
create user 'replica'@'%' identified by '123456'; grant replication slave,replication client,reload,super on *.* to 'replica'@'%' identified by '123456';
5.进入从库开启同步
同步开启前需要保持主从要同步的数据库数据一致。
# 从库启动slave: # (MASTER_LOG_FILE与MASTER_LOG_POS在主库运行SHOW MASTER STATUS;取得) CHANGE MASTER TO MASTER_HOST='192.168.1.60', MASTER_USER='replica', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=875; start slave; show slave status \G; --查看slave状态 确保Slave_IO_Running: Yes Slave_SQL_Running: Yes
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。