`

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。
分享到:
评论

相关推荐

    配置MYSQL主从关系教程

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

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

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

    MySQL配置文件解析

    MySQL参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的观察...

    MySQL 8.0 的详细 配置 my.cnf

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

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

    Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配置虚拟IP,实现当其中的一台MySQL数据库宕机后,应用能够自动切换到另外一台...

    MySQL配置文件中文详解

    MySQL配置文件中文详解,优化调试必备。内存设置、日志设置、主从复制设置、redo log和binlog的关系设置、Innodb设置

    mysql安装配置教程

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系...

    MySQL安装配置文件my.ini

    通过zip文件解压安装MySQL时需要的配置文件my.ini。 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

    MYSQL高级配置和管理电子书

    MySQL是一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。 本书分为三部分,分别介绍了MySQL的基础知识、配置和管理。第一部分介绍了MySQL的一般信息、...

    mysql安装配置教程.pdf

    MySQL 是一种广泛使用的关系型数据库管理系统,常被用于开发 Web 应用程序和数据分析。 ## 步骤一:下载 MySQL 1. 前往 MySQL 官方网站(https://dev.mysql.com/downloads/mysql/)并下载适用于您操作系统的 MySQL...

    mysql环境配置、安装包

    MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,...

    MySQL数据库:MySQL数据库的安装和配置.pptx

    MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。 MySQL所使用的 SQL 语言是用于访问数据库的最常用...

    mysql lunix的安装

    这个是MySQL5.5再contos6下的安装方法 MySQL 是目前最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 也是目前最好的 RDBMS 应用软件之一。随着淘宝去IOE(去除IBM小型机、Oracle数据库及EMC存储设备)化的推进,...

    MYSQL学习资料

    MySQL Proxy应用入门 2 MySQL Proxy配置选项 MySQL Proxy应用入门 3 使用MySQL Proxy MySQL UDF Mysql Proxy安装配置测 MySQL5 5 Semi synchronous Replication(半同步复制) mysqlslap MySQL压力测试工具 mysql ...

    MySQL安装和配置详细版

    MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,...

    《Linux服务器配置与管理》教学课件—第-11-章--MySQL-服务器配置.pptx

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle公司旗下的产品。由于 MySQL 性能高、成本低、可靠性好,已经成为目前非常流行的开源数据库,因此 MySQL 被广泛地应用在中小型网站中...

    MySQL的安装配置教程详细讲解.docx

    MySQL是一种流行的开源关系型数据库管理系统(RDBMS),用于存储和检索数据。以下是MySQL的安装和配置的基本步骤。请注意,这里提供的步骤可能因操作系统和MySQL版本而异,因此请确保查阅相关文档以获取最新的信息。...

    Linux下Mysql双机备份

    MySQL的双机热备份是基于MySQL内部复制功能,建立在两台或者多台以上的服务器之间,通过它们之间的主从关系,是插入主数据库的数据同时也插入到从数据库上,这实现了动态备份当前数据库的功能。下面细说一下主从热...

    Mysql转Oracle软件 DBMover for Mysql to Oracle

    使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 Dbmover for Mysql to Oracle 可以定时,定周期自动运行。 支持 Oracle 8i 以后...

Global site tag (gtag.js) - Google Analytics