mysql主从复制-mysql5.6配置主从复制

本文介绍了如何配置MySQL5.6的主从复制。在主从复制中,首先展示了复制相关的配置模板,接着详细说明了从机需要的连接信息,包括在从机上配置以连接到master主机的步骤。对于`change master`命令的使用,提供了其他文章的链接作为详细参考资料。
摘要由CSDN通过智能技术生成
1 简介
    mysql复制的原理现阶段都是一样的,master将操作记录到bin-log中,slave的一个线程去master读取bin-log,并将他们保存到relay-log中,slave的另外一个线程去重放relay-log中的操作来实现和master数据同步。
    基本介绍可参考我的文章:【 http://blog.csdn.net/jesseyoung/article/details/41942467
2 主机配置信息
    2.1 相关配置介绍
    开启二进制日志,建立主机唯一server ID。
    在主机上开启二进制日志是因为它是master向slave复制变化数据的基础。
    对一个复制组里的主机建立唯一server ID是为了将一组内的数据库服务器区分开来,server ID的取值范围为1至2^32-1之间任意值。
    配置binlog及server ID时需要关闭mysql服务器,编辑my.cnf或my.ini文件,在[mysqld]选项下添加log-bin及server-id选项,例如:
[mysqld]
log-bin=mysql-bin
server-id=1
    更改完后重启mysql服务器。
    注意事项:
    1 如果我们忽略了server ID选项或明确指定其值为默认值0,master主机将拒绝来自slave从机的任何连接。
    2 对于Innodb事务,为了提高数据的持久性及连续性,我们应该在my.cnf里面设置
[mysqld]
innodb_flush_log_at_trx_commit=1
sync_binlog=1
    innodb_flush_log_at_trx_commit = 1:这也是Innodb 的默认设置。我们每次事务的结束都会触发Log Thread 将log buffer 中的数据写入文件并通知文件系统同步文件。这个设置是最安全的设置,能够保证不论是MySQL Crash 还是OS Crash 或者是主机断电都不会丢失任何
已经提交的数据。
    sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
    3 确保master主机上skip-networking选项是禁用的,否则master主机数据库只允许通过本地mysql.sock文件进行连接,slave从机将无法联系到主机。
[mysqld]
#skip-networking

    2.2复制相关配置模板(master)

[mysqld]
server_id = 123
binlog_format = mixed
log-bin = mysql-bin
relay-log = mysql-relay-bin

log-slave-updates = 1
#skip_slave_start = 1
#replicate_wild_ignore_table = mysql.****_%
read_only = 0

####性能相关####
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1

####复制方式相关####
plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1

####复制错误相关####
#replicate-ignore-table = mysql.***
slave-skip-errors = ddl_exist_errors

####复制信息相关####
relay-log-info-repository = TABLE
relay_log_recovery = 1
master_info_repository = TABLE

####GTID相关####
gtid-mode = ON
enforce-gtid-consistency = 1
    相关参数解释:
    log-slave-updates:
从库更新也写binlog,主要用于链式复制,从库作为另一个库的主库,或者HA架构中,从库可升级为主库。
    skip_slave_start:阻止从库崩溃后,自动启动复制
    replicate_wild_ignore_table:
    replicate_wild_ignore_db:
解决主从架构mysql跨库更新问题, 使用replicate_do_db和replicate_ignore_db时有一个隐患,跨库更新时会出错。
    如在Master(主)服务器上设置 replicate_do_db=test
    use mysql;
    update test.table1 set ......
    那么Slave(从)服务器上第二句将不会被执行
 
    如Master设置 replicate_ignore_db=mysql
    use mysql;
    update test.table1 set ......
    那么Slave上第二句会被忽略执行
 
    原因是设置replicate_do_db或replicate_ignore_db后,MySQL执行sql前检查的是当前默认数据库,所以跨库更新语句在Slave上会被忽略。
    可以
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值