• ADADADADAD

    MySQL主主复制(图文详解)[ mysql数据库 ]

    mysql数据库 时间:2024-12-25 09:57:28

    作者:文/会员上传

    简介:

    一、实现原理主主复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。聪明的你也许已经想到该怎么实现了。对,就是将两个主从复制有机合并起来就好

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一、实现原理
    主主复制即在两台MySQL主机内都可以变更数据,而且另外一台主机也会做出相应的变更。聪明的你也许已经想到该怎么实现了。对,就是将两个主从复制有机合并起来就好了。只不过在配置的时候我们需要注意一些问题,例如,主键重复,server-id不能重复等等。
    主主复制----->互为主从
    二、实现功能
    两台MySQL之间互为彼此的从库,同时又是主库。这种方案,既做到了访问量的压力分流,同时也解决了“单点故障”问题。任何一台故障,都还有另外一套可供使用的服务。

    三、架构模式

    四、配置文件

     --192.168.18.5 【mysqld】server-id=1 #任意自然数n,只要保证两台MySQL主机不重复就可以了。 log-bin=mysql-bin #开启二进制日志 log_bin_index = mysql-bin.index relay_log = mysql-relay-bin relay_log_index = mysql-relay-bin.index read_only = 1 skip_slave_start = 1 auto_increment_increment=2 #步进值auto_imcrement。一般有n台主MySQL就填n auto_increment_offset=1 #起始值。一般填第n台主MySQL。此时为第一台主MySQL binlog-ignore=mysql #忽略mysql库 binlog-ignore=information_schema #忽略information_schema库 slave-skip-errors = all --192.168.18.6【mysqld】server-id = 2log_bin = mysql-binlog_bin_index = mysql-bin.indexrelay_log = mysql-relay-binrelay_log_index = mysql-relay-bin.indexread_only = 1skip_slave_start = 1log_slave_updates = 1auto-increment-increment = 2auto-increment-offset = 2 #此处区别于18.5的配置slave-skip-errors = all

    配置好后重启MySQL

    两台数据库的/etc/my.cnf配置

    五、互相授权访问权限

    18.5上执行授权root远程18.6MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.18.6' IDENTIFIED BY '1qaz2wsx';Query OK, 0 rows affected, 1 warning (0.06 sec)MySQL [(none)]> flush privileges;Query OK, 0 rows affected (0.05 sec)18.6上执行授权root远程18.5MySQL [(none)]> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.18.5' IDENTIFIED BY '1qaz2wsx';Query OK, 0 rows affected, 1 warning (0.04 sec)MySQL [(none)]> flush privileges;Query OK, 0 rows affected (0.03 sec)

    在18.5上查看二进制文件名与位置

    在18.6上告知18.5的文件名与位置
    MySQL [(none)]> CHANGE MASTER TO
    -> MASTER_HOST='192.168.18.5',
    -> MASTER_USER='root',
    -> MASTER_PASSWORD='1qaz2wsx',
    -> MASTER_LOG_FILE='mysql-bin.000003',
    -> MASTER_LOG_POS=154;

    至此完成主从模式。
    要完成主主,相反,18.6也要告知18.5的二进制文件名与位置
    在18.6上查看

    在18.5上执行
    MySQL [(none)]> CHANGE MASTER TO
    -> MASTER_HOST='192.168.18.6',
    -> MASTER_USER='root',
    -> MASTER_PASSWORD='1qaz2wsx',
    -> MASTER_LOG_FILE='mysql-bin.000005',
    -> MASTER_LOG_POS=154;
    Query OK, 0 rows affected, 2 warnings (0.31 sec)

    然后分别开启start slave;

    查看slave状态

    至此完成主主复制。
    配置主主之前,mysql的库最好是一致的,也就是初始化的模式的,如果库不一致,会导致报错。

    参考链接

    报错参考链接
    配置参考链接

    MySQL主主复制(图文详解).docx

    将本文的Word文档下载到电脑

    推荐度:

    下载