mysql主从同步及canal配置详解
定义
mysql配置文件:/etc/f
canal服务配置文件:%canal_home%/conf/
canal实例配置文件:%canal_home%/conf/instance_name/
mysql主从同步
mysql的主从同步主要是binlog技术(binlog介绍见http://blog./uid-21505614-id-),所以首先需要修改mysql配置文件,打开master上的binlog:
[mysqld]
server-id = 11 # master的id,全局唯一
log-bin = mysql-binlog # binlog的文件名,也可以指定输出目录,默认/var/lib/mysql/目录下
binlog_format = row # binlog格式,Mixed/Statement/Row,默认格式是 Statement
除此以外,还需要配置需要做同步的数据库/表,和不需要做同步的数据库,否则会产生大量不关注的垃圾数据:
binlog-do-db = test_canal # 指定进行同步的数据库,多个写多行
binlog-ignore-db = mysql # 忽略进行同步的数据库,多个写多行
slave上需要进行如下配置:
# replicate-wild-do-table = test.% # 指定需要从master上同步的表,,%表示全部匹配,多个写多行
# replicate-ignore-db = mysql # 忽略从master上同步的数据库,多个写多行
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 # 同步时忽略的错误类型
如果需要进行互为主从的部署,或主--从--从的部署则需要在slave上进行如下配置:
log-slave-updates # 在做主---从1---从2的部署时需要在从1上进行这个配置,否则从2上获取不到主同步给从1的数据
主从服务的启动:
首先在master上查看binlog信息:
然后在slave上依次执行如下命令来启动slave:
SLAVE STOP;
CHANGE MASTER TO
MASTER_HOST='', # master地址
MASTER_USER='canal', # master用户名
MASTER_PASSWORD='canal', # master密码
MASTER_PORT=3306, # master端口
MASTER_LOG_FILE='mysql-', # 需要开始同步的binlog文件名
MASTER_LOG_POS=32406, # 同步的起始位置
MASTER_CONNECT_RETRY=60; # 同步连接重试间隔
SLAVE STOP;
最后查看slave状态:
SHOW SLAVE STATUS;
只要Slave_IO_Running和Slave_SQL_Running为Yes就OK了
mysql
mysql主从同步及canal配置详解 来自淘豆网www.taodocs.com转载请标明出处.