`

mysql主主关系配置

阅读更多
mysql支持主主关系,是通过同步bin-log来实现数据同步,如mysqlA与mysqlB是主主关系,mysqlA的数据是通过同步mysqlA的bin-log来将数据同步到mysqlB,相反mysqlB的数据是通过同步mysqlB的bin-log来将数据同步到mysqlA。根据这一原理,如果双写mysqlA和mysqlB,可能产生数据冲突而造成数据不一致,因此在使用时需要避免双写造成的数据冲突问题。
      对bin-log的了解可参照下面链接:
      http://www.doc88.com/p-337769944580.html
      好了,下面进行配置mysql主主关系。
      例如有mysqlA(192.168.1.100)和mysqlB(192.168.1.101),需将它们配置主主关系。可以将一过程分解为两个子过程:(1)将mysqlA配成mysqlB的从库;(2)将mysqlB配成mysqlA的从库。可见,过程(2)是过程(1)的逆过程。
一、mysqlA配成mysqlB的从库
(1)登陆mysqlB(192.168.1.101)
(2)首先创建一个mysql账号作为同步用,然后赋与同步权限;
mysql>INSERT INTO mysql.user(Host,User,Password) VALUES("localhost","user_00",password("1234"));
mysql>GRANT REPLICATION SLAVE ON *.* TO 'user_00'@192.168.1.100 IDENTIFIED BY '1234'
mysql>FLUSH PRIVILEGES;
(3)编辑mysql的配置文件my.cnf(一般位置是/etc/my.cnf),添加下面项
log-bin=bin-log # 打开binlog
server-id = 1  # 标识mysqlB
auto_increment_increment = 2
auto_increment_offset = 1 
binlog-do-db=discuz   # 需要同步的DB
binlog-ignore-db=mysql  # 不需要同步的DB
slave-skip-errors=all  # 跳过错误,继续执行复制
    上面其中auto_increment_increment = 2和auto_increment_offset = 1用于解决主主模式时自增加字段的数据冲突,它表示auto_increment字段产生的数值是:1, 3, 5, 7, …等奇数ID。
(4)重启mysqlB
#sudo service mysql restart
(5)查看master status
mysql>show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 |      106 | discuz |                  |
+------------------+----------+--------------+------------------+
(6)登陆mysqlA(192.168.1.100)
(7)编辑mysqlA的配置文件my.cnf,添加下面项
server-id = 2 #标识mysqlA
auto_increment_increment = 2
auto_increment_offset = 2
replicate-ignore-db=mysql 
replicate-do-db=discuz
(8)重启mysqlA
#sudo service mysql restart
(9)从机mysqlA指定需要同步的主机mysqlB位置和binlog位置(该信息由步骤(5)提供)
mysql>slave stop;
mysql>change  master to master_host='192.168.1.101', master_user='user_00',   master_password='1234', master_port=3366, master_log_file='mysql-bin.000003', master_log_pos=106;
mysql>slave start;
(10)查看slave的同步状态
mysql>show slave status;
如果显示信息中 Slave_IO_Running: Yes  Slave_SQL_Running: Yes,都为Yes,则说明mysqlA成功为mysqlB的从库,即主从关系建立。

二、mysqlB配成mysqlA的从库
     此过程是过程一的逆过程。因此将上面的过程里的mysqlA和mysqlB对换一下操作,并略改下(3)、(7)(9)步骤:
  (3)改为:只添加下面项

log-bin=bin-log # 打开binlog
binlog-do-db=discuz   # 需要同步的DB
binlog-ignore-db=mysql  # 不需要同步的DB
slave-skip-errors=all  # 跳过错误,继续执行复制
(7)改为:只添加下面项
replicate-ignore-db=mysql 
replicate-do-db=discuz
(9)改为:(其中master_log_file和master_log_pos由步骤(5)显示的信息提供)

mysql>slave stop;
mysql>change  master to master_host='192.168.1.100', master_user='user_00',   master_password='1234', master_log_file='mysql-bin.000003', master_log_pos=106;
mysql>slave start;

最后查看slave状态,此时slave是mysqlB,即在mysqlB是输入如下命令:

mysql>show slave status;
同样如果显示信息中 Slave_IO_Running: Yes  Slave_SQL_Running: Yes,都为Yes,则说明mysqlB成功为mysqlA的从库,即主从关系建立。

至此,mysqlA和mysqlB的主主关系建立完成。它们互相同步的DB是discuz。
分享到:
评论

相关推荐

    CentOS7下MySQL8的主主互备安装文档和my.cnf配置文件

    本教程将深入探讨如何在CentOS7操作系统环境下,利用VM虚拟机安装MySQL8.0.13,并实现主主互备的高可用性配置。这有助于确保数据的冗余和连续性,降低单点故障的风险。 首先,我们从【标题】入手,"CentOS7下MySQL8...

    配置MYSQL主从关系教程

    本教程使用简洁易懂的文字详细说明了MYSQL数据库建立主从备份的全过程,旨在使MYSQL初学者在拿到这份文档也能配置MYSQL数据库的主从关系

    Keepalived+Mysql互为主从高可用安装配置

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要讲述的是如何通过Keepalived与MySQL构建一个互为主从(双主)的高可用性架构。接下来将详细解析这些步骤,并进一步扩展相关的知识点。 ### 一、...

    docker mysql双主配置1

    在IT行业中,Docker容器化技术被广泛应用于部署和管理应用,而MySQL作为流行的关系型数据库管理系统,其高可用性配置是数据库管理员必须掌握的关键技能之一。本文将深入探讨如何在Docker环境下配置MySQL的双主复制,...

    linux mysql5.5 一主多从配置 .docx

    在Linux环境中配置MySQL 5.5的一主多从架构是一项关键任务,特别是对于需要高可用性和数据一致性的大型系统。这里我们将深入探讨如何进行这样的配置,以及遇到的一些常见问题和解决方案。 首先,我们需要了解MySQL...

    Mysql双服务器互为主从和读写分离配置

    ### MySQL 双服务器互为主从与读写分离配置详解 #### 一、基础知识与预备工作 **MySQL 主从复制机制**是一种数据复制技术,通过它可以让一个MySQL服务器(主服务器)的数据自动同步到另一个或多个MySQL服务器(从...

    JIRA+MYSQL配置

    而MYSQL是一款流行的开源关系型数据库管理系统,其主要功能是存储信息。JIRA可以与MYSQL数据库配合使用,将数据存储于MYSQL中,通过配置JIRA使用MYSQL作为其后端数据库,可以实现数据持久化存储。 配置JIRA与MYSQL...

    CentOs7下mysql5.7的下载安装以及主从同步、双主多从配置详情

    CentOs7 下 Mysql 5.7 的下载安装和主从同步、双主多从配置详解 CentOs 7 是一个流行的 Linux 操作系统,而 Mysql 5.7 是一个广泛使用的关系型数据库管理系统。本文将详细介绍如何在 CentOs 7 下下载安装 Mysql 5.7...

    mysql主从主主配置.docx

    为了实现MySQL的主从复制,首先需要配置主服务器。假设我们有两台服务器作为主服务器: - **主服务器 1 IP**: 192.168.0.1 - **主服务器 2 IP**: 192.168.0.2 在主服务器 1 上进行以下配置: **步骤 1:** 修改 ...

    Keepalived+MySQL双主.docx

    通过配置网络、安装 Keepalived、配置 Keepalived、配置 MySQL 和实现双主同步复制,能够实现一套高可用性的 MySQL 集群系统。 八、关键点 * Keepalived 是一个开源软件,用于实现高可用性和负载均衡。 * MySQL 是...

    mysql配置

    MySQL 是一个广泛使用的开源关系型数据库管理系统,适用于多种应用场景。对于初学者或开发者来说,正确配置 MySQL 对于确保系统的稳定运行至关重要。以下将详细介绍如何进行 MySQL 的基本配置及常见问题的解决方法。...

    MySQL主主双向同步测试报告.pdf

    配置主主同步涉及以下步骤: 1. **授权同步账户**:在每个服务器上,我们需要创建一个特定的账户,允许从服务器连接并读取主服务器的二进制日志。例如,在Master1上为Master2授权,使用`GRANT REPLICATION SLAVE`...

    MySQL 高可用性—keepalived+mysql双主.docx

    通过一系列的配置步骤,包括设置主从关系、权限授权和防火墙规则,两台服务器成功实现了主主同步。通过在一台服务器上创建数据库和表,然后观察另一台服务器是否同步了这些变更,我们可以验证主主复制是否正常工作。...

    mysql 双主单活+keepalived 实现高可用

    4. 自动恢复:原故障节点修复后,可通过手动或自动方式重新加入集群,此时需要调整复制关系,让其成为新主节点的从节点。 四、注意事项 1. 数据一致性:双主复制可能导致数据不一致,因此在设计业务逻辑时要避免...

    MySQL 8.0 的详细 配置 my.cnf

    MySQL 教程 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库 MySQL8.0数据库的一般配置 Linux环境的配置文件

    MySQL安全配置详解

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),支持多种平台,包括Linux、Windows、OS X等。它以其高性能、可靠性、易于使用和灵活性而受到许多开发者的青睐。然而,由于其多平台特性,MySQL在默认安装...

    LINUX +MYSQL双机配置

    MySQL作为广泛使用的开源关系型数据库管理系统,提供了多种方式来实现高可用性,其中包括双机热备配置。本篇文章将详细解析如何在Linux环境下配置MySQL的双机热备,包括主从同步(M-S)以及主主同步(M-M)。 首先...

    Linux配置mysql主从同步

    2. **配置主服务器信息** - 输入以下命令: ```sql CHANGE MASTER TO MASTER_HOST='192.168.0.100', MASTER_USER='replicator', MASTER_PASSWORD='S1_cetc10', MASTER_LOG_FILE='mysql-bin.000001', MASTER_...

Global site tag (gtag.js) - Google Analytics