搜尋
首頁資料庫mysql教程MySQL数据库双向同步

项目申请了两台数据库服务器,为了保持数据同步,就搞了个数据同步,以此文记录以备后续使用:首先声明:服务器操作系统都是Cent

项目申请了两台数据库服务器,为了保持数据同步,就搞了个数据同步,以此文记录以备后续使用:

首先声明:

服务器操作系统都是CentOS6.1、mysql版本号一致,为了减少出现其他问题的可能性,故做此环境搭配。

数据库服务器A,ip地址:192.168.6.108

数据库服务器B,ip地址:192.168.6.200

当然 首先要备份一台数据最新的数据库,然后等设置同步完毕之后都还原成相同的数据!

先做B同步A数据库的数据功能:

暂时称A为主机Master、B为从机Slave

A主机Master

1、修改mysql数据库conf文件,修改/etc/my.conf

# Replication Master Server (default)

# binary logging is required for replication

之后增加

  • server-id       = 1            #自带就有的话就不用添加 看一下my.conf上下文   
  • binlog-do-db=mydb_name #需要同步的数据库名称   
  • 2、重启mysql

    (CentOS是serice mysqld restart 其他系统的自行重启 若不知请谷歌、度娘) 

    3、创建一个MySQL帐号为同步专用

    用root用户登陆mysql

    mysql> grant replication slave,reload,super on *.* to backup@192.168.5.200 identified by 'backup';

    mysql> flush privileges;

    ps:我这里是创建了一个backup用户密码也是backup的mysql数据库用户,用于同步。@后面指定该账户允许远程登录的ip,也就是B从机的ip地址

    B从机Slave

    1、同样的修改mysql数据库conf文件,修改/etc/my.conf

    # Replication Master Server (default)

    # binary logging is required for replication

    之后增加

  • server-id       = 2             #自带就有的话就不用添加 看一下my.conf上下文   
  • master-host=192.168.5.108   #此处是需要备份的主机ip 这里填的是A主机的ip   
  • master-port=3306        #数据库端口号 没改就填默认的3306   
  • replicate-do-db=mydb_name  #需要同步的数据库名称  
  • 启动同步

    在主服务器A上,mysql命令下(root用户登陆mysq)

    mysql> show master status;

    eg:

    +一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

    | File                     | Position     | Binlog_Do_DB   | Binlog_Ignore_DB  |

    +一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

    | mysql-bin.000012  |      106    | mydb_name     | mysql                  |

    +一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

    从服务器B上,mysql命令下(同样用root用户登陆mysq)

    mysql> slave stop;

    mysql> change master to master_log_file='mysql-bin.000012',master_log_pos=106;

    mysql> slave start;

    ps:

         master_log_file就是在主服务器mysql下show master status;显示的File列的值

         master_log_pos就是在主服务器mysql下show master status;显示的Position列的值

    还是在从服务器B的mysql命令下

    用show slave status \G;看一下从服务器的同步情况

    mysql>show slave status \G;

    有如下两项的值都是YES就表示已经在同步

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    否则就是同步失败,当然了,失败的原因有N种,自己慢慢谷歌、度娘,这里只把我自己的操作步骤记录。

    设置MySQL双向同步

    其实设置双向同步就是把上面的步骤重复一下,只是A和B服务器的操作反过来,A变成从服务器、B变成主服务器!

    1、修改B服务器的my.conf,添加

  • binlog-do-db=mydb_name #需要同步的数据库名称   
  • 2、重启B服务器的mysql (service mysqld restart)

    3、登陆mysql,

    mysql> grant replication slave,reload,super on *.* to backup@192.168.5.108 identified by 'backup';

    mysql> flush privileges;

    ps:创建一个backup用户,密码也是backup的mysql数据库用户,用于同步。@后面指定该账户允许远程登录的ip,也就是A从机的ip地址。

    4、修改A服务器的my.cnf,添加

  • master-host=192.168.5.200   #此处是需要备份的主机ip 这里填的是A主机的ip   
  • master-port=3306        #数据库端口号 没改就填默认的3306   
  • replicate-do-db=mydb_name  #需要同步的数据库名称  
  • 5、重启A服务器的mysql(service mysqld restart)

    6、在主服务器B MySQL命令符下:

    mysql> show master status;

    eg:

    +一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

    | File                     | Position     | Binlog_Do_DB   | Binlog_Ignore_DB  |

    +一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

    |     | mydb_name     | mysql                  |

    +一一一一一一一一一一+一一一一一一+一一一一一一一一+一一一一一一一一一一+

    7、在服务器A MySQL命令符下:

    mysql> slave stop;

    mysql> change master to master_log_file='mysql-bin.000014',master_log_pos=188;

    mysql> slave start;

    8、还是在从服务器A的mysql命令下

    用show slave status \G;看一下从服务器的同步情况

    mysql>show slave status \G;

    有如下两项的值都是YES就表示已经在同步

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    然后还原数据至最新数据库!

    至此 双向同步配置完毕!

    ps:因为是基于操作日志备份,,所以设置同步前请把数据库先备份,然后用用一份备份还原数据库,之后数据就可以保持一致!

    linux

    陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    Go语言和MySQL数据库:如何进行数据冷热分离处理?Go语言和MySQL数据库:如何进行数据冷热分离处理?Jun 18, 2023 am 08:26 AM

    随着数据量的不断增加,数据库的性能成为了一个越来越重要的问题。数据冷热分离处理是一种有效的解决方案,它可以将热点数据和冷数据进行分离,从而提高系统的性能和效率。本文将介绍如何使用Go语言和MySQL数据库进行数据冷热分离处理。一、什么是数据冷热分离处理数据冷热分离处理是一种将热点数据和冷数据进行分类处理的方式。热点数据是指访问频率高、对性能要求高的数据,冷数

    使用Go语言进行MySQL数据库的数据增量备份的方法使用Go语言进行MySQL数据库的数据增量备份的方法Jun 17, 2023 pm 02:28 PM

    随着数据量的增加,数据库的备份变得越来越重要。而对于MySQL数据库,我们可以借助Go语言实现自动化的增量备份。本篇文章将简单介绍如何使用Go语言进行MySQL数据库的数据增量备份。一、安装Go语言环境首先,我们需要在本地安装Go语言环境。可以前往官网下载相应的安装包并进行安装。二、安装相应的库Go语言提供了许多访问MySQL数据库的第三方库,其中较为常用的

    如何使用MySQL数据库进行时间序列分析?如何使用MySQL数据库进行时间序列分析?Jul 12, 2023 am 08:39 AM

    如何使用MySQL数据库进行时间序列分析?时间序列数据是指按照时间顺序排列的数据集合,它具有时间上的连续性和相关性。时间序列分析是一种重要的数据分析方法,可以用于预测未来趋势、发现周期性变化、检测异常值等。在本文中,我们将介绍如何使用MySQL数据库进行时间序列分析,并附上代码示例。创建数据表首先,我们需要创建一个数据表来存储时间序列数据。假设我们要分析的数

    如何使用Go语言进行可靠的MySQL数据库连接?如何使用Go语言进行可靠的MySQL数据库连接?Jun 17, 2023 pm 07:18 PM

    随着大量的数据需要存储和处理,MySQL已经成为了应用开发中最常用的关系型数据库之一。而Go语言由于其高效并发处理和简洁的语法,也越来越受到开发者的欢迎。本文就将带领读者通过Go语言实现可靠的MySQL数据库连接,让开发者能够更加高效地查询和存储数据。一、Go语言连接MySQL数据库的几种方式Go语言中连接MySQL数据库通常有3种方式,分别是:1.第三方库

    使用Go语言进行MySQL数据库的数据迁移的方法使用Go语言进行MySQL数据库的数据迁移的方法Jun 17, 2023 am 09:01 AM

    随着业务的增长和数据库版本升级等因素,数据库迁移变得越来越普遍。在进行数据迁移时,选择合适的工具和语言非常重要。本文将介绍如何使用Go语言进行MySQL数据库的数据迁移。安装MySQL驱动在使用Go语言进行MySQL数据库迁移前,需要首先安装MySQL驱动。在Go语言中,有很多MySQL驱动可供选择。在本文中,我们将选择最常用的官方MySQL驱动包-"dat

    MySQL数据库和Go语言:如何进行数据缓存处理?MySQL数据库和Go语言:如何进行数据缓存处理?Jun 17, 2023 am 10:05 AM

    近年来,Go语言越来越受到开发人员的青睐,成为开发高性能Web应用程序的首选语言之一。MySQL也作为一种流行的数据库,使用广泛。在将这两个技术结合起来使用的过程中,缓存处理是非常重要的一环。下面将介绍如何使用Go语言来处理MySQL数据库的缓存。缓存的概念在Web应用程序中,缓存是为了加快数据的访问速度而创建的一种中间层。它主要用于存储经常被请求的数据,以

    MySQL创建标签表实现文章标签功能的实现步骤MySQL创建标签表实现文章标签功能的实现步骤Jul 02, 2023 pm 04:17 PM

    MySQL创建标签表实现文章标签功能的实现步骤标签是一种常用的分类方式,它可以帮助我们更好地组织和检索文章。在许多网站和应用程序中,都会有文章标签的功能。本文将介绍如何使用MySQL创建标签表,并实现文章标签的功能。步骤1:创建标签表首先,我们需要创建一个用于存储标签的表。在MySQL中,可以使用以下命令创建标签表:CREATETABLEtags(

    使用Go语言进行MySQL数据库的数据导入导出过滤的方法使用Go语言进行MySQL数据库的数据导入导出过滤的方法Jun 17, 2023 pm 04:04 PM

    随着互联网和大数据时代的到来,数据处理成为了一项必备的技能。MySQL作为目前世界上最流行的关系型数据库管理系统,一直以来在数据处理领域受到了广泛的应用。MySQL具有性能高、易用性好、灵活性强等优点,但数据导入导出过程中可能会存在重复或无效数据,因此本文将介绍如何使用Go语言进行MySQL数据库的数据导入导出过滤的方法。一、环境搭建安装MySQL数据库在开

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    2 週前By尊渡假赌尊渡假赌尊渡假赌
    倉庫:如何復興隊友
    4 週前By尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island冒險:如何獲得巨型種子
    4 週前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    禪工作室 13.0.1

    禪工作室 13.0.1

    強大的PHP整合開發環境

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強大的PHP整合開發環境

    EditPlus 中文破解版

    EditPlus 中文破解版

    體積小,語法高亮,不支援程式碼提示功能