mysql 双主同步失败_mysql双主同步

news/2025/6/19 13:08:26

在实际项目中,两台分布于异地的主机上安装有MYSQL数据库,两台服务器互为主备,客户要求当其中一台机器出现故障时,另外一台能够接管服务器上的应用,这就需要两台数据库的数据要实时保持一致,在这里使用MYSQL的同步功能实现双机的同步复制。

1、数据库同步设置

主机操作系统:centos

数据库版本:mysql Ver 14.12 Distrib 5.0.22

前提:MYSQL数据库正常启动

假设两台主机地址分别为:

ServA:192.168.0.101ServB:192.168.0.203

Iptables 开发3306端口

1.1 配置同步账号

在ServA上授权一个ServB可以登录的帐号:

GRANT all privileges ON *.* TO root@'192.168.0.203' IDENTIFIED BY '123456';

在ServB上授权一个ServA可以登录的帐号:

GRANT all privileges ON *.* TO root@'192.168.0.101' IDENTIFIED BY '123456';

1.2 配置数据库参数

1、 以root用户登录ServA,修改ServA的my.cnf文件

vi /etc/my.cnf

在[mysqld]的配置项中增加如下配置:

default-character-set=utf8

log-bin=mysql-bin

relay-log=relay-bin

relay-log-index=relay-bin-index

server-id=1

master-host=192.168.0.203

master-user=root

master-password=123456

master-port=3306

master-connect-retry=30

binlog-do-db=abc

replicate-do-db=abc

replicate-ignore-table=umsdb.boco_tb_menu

replicate-ignore-table=umsdb.boco_tb_connect_log

replicate-ignore-table=umsdb.boco_tb_data_stat

replicate-ignore-table=umsdb.boco_tb_log_record

replicate-ignore-table=umsdb.boco_tb_workorder_record

2、以root用户登录ServB,修改ServB的my.cnf文件

vi /etc/my.cnf

在[mysqld]的配置项中增加如下配置:

default-character-set=utf8

log-bin=mysql-bin

relay-log=relay-bin

relay-log-index=relay-bin-index

server-id=2

master-host=192.168.0.101

master-user=root

master-password=123456

master-port=3306

master-connect-retry=30

binlog-do-db=abc

replicate-do-db=abc

replicate-ignore-table=umsdb.boco_tb_menu

replicate-ignore-table=umsdb.boco_tb_connect_log

replicate-ignore-table=umsdb.boco_tb_data_stat

replicate-ignore-table=umsdb.boco_tb_log_record

replicate-ignore-table=umsdb.boco_tb_workorder_record

1.3 手工执行数据库同步

假设以ServA为主服务器,在ServB上重启mysql:

service mysqld restart

在ServB上用root用户登录mysql,执行:

Mysql> stop slave;

Mysql> load data from master;

Mysql> start slave;

在ServA上重启mysql:

service mysqld restart

1.4查看数据库同步状态

在mysql命令提示符下执行:

Mysql> show slave status\G

将显示同步进程的状态,如下所示,如果都为yes表示正常;

fa054142e9b76b19b5efdf5aa12c8c21.png

46bc47ecb5360691115e6f1fba8f7f7a.png

3、 数据库同步测试

配置完数据库后进行测试,首先在网络正常情况下测试,在ServA上进行数据库操作,和在ServB上进行数据库操作,数据都能够同步过去。

拔掉ServB主机上的网线,然后在ServA上做一些数据库操作,之后再恢复ServB的网络环境,但是在ServB上却看不到同步的数据,通过命令show slave status\G查看发现Slave_IO_Running的状态是No,这种状态持续很长一段时间,数据才能同步到ServB上去。这是什么问题呢?同步延迟不会这么大吧。后来通过网上查找相关资料,找到一个同步延迟相关的参数:

--slave-net-timeout=seconds

参数含义:当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据。

于是在配置文件中增加该参数,设置为60秒

slave-net-timeout=60

重启MYSQL数据库后测试,该问题解决。

文章来源:https://blog.csdn.net/weixin_35273106/article/details/113227814
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-17027.html

相关文章

brew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"转载于:https://www.cnblogs.com/fang9159/p/4775223.html

Bulestacks模拟器Bulestacks.prop文件里中英文对照表

打开“Bulestacks.prop”文件后可以看到以下内容,根据中英文对照表来修改即可。# begin build properties (开始设置系统性能)# autogenerated by buildinfo.sh (通过设置形成系统信息)ro.build.idGRI40 (版本ID)ro.bu…

iOS开发--cookie管理

AFNetworking框架中提供了自动管理cookie的工具 AFHTTPRequestOperationManager *manager [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:BaseURL]]; manager.requestSerializer.HTTPShouldHandleCookies YES; [manager GET:url parameters:…

qt4.8 mysql 驱动_Qt4.8.6编译mysql驱动-深入了解

Qt4.8.6编译mysql驱动-深入了解前些天的博文中讲述了Windowqtvc2017编译器这种组合下通过Qt标准库SQL接口连接mysql数据库情形,并成功解决了加载mysql驱动失败的问题。虽然有了点成绩但是依旧没有解决在Qt4.8.6mingw这种组合下mysql数据库连接的问题。1、软件环境操…

vb连接mysql教程视频_VB 连接mysql数据库

1.使用xamp自带的mysql数据库2,下载mysql-connector-odbc-3.51.28-win32.msi,添加数据源conn 配置如下3.打开xamp控制面板,运行apache,mysql服务4,键入localhost,进入管理页面,添加sohard数据库&#xff0c…

web.xml标签context-param的说明

<context-param> : 代码示例&#xff1a; 1 <context-param> 2 <param-name>contextConfigLocation</param-name> 3 <param-value>classpath:spring.xml,classpath:spring-mybatis.xml</param-value> 4 </context-param> 初…

jQuery 制作逼真的日历翻转效果的倒计时

在开发中&#xff0c;一些功能需要用到倒计时&#xff0c;例如最常见的活动开始、结束的倒计时。使用最流行的 JavaScript 库来制作这个效果很简单。下面就是一个 jQuery 制作的逼真的日历翻转效果的倒计时功能。 在线演示 插件下载 调用方法&#xff1a; $(function() {$…

How to Use updateConstraints(什么时候该使用updateConstraints)

How to Use updateConstraintsHow to Use updateConstraints(怎么使用updateConstraints)problemdoc saystough thingsdoc says again(wwdc2015)conclusion结论原文链接:How to Use updateConstraints(怎么使用updateConstraints)problemBy Ole Begemann August 31, 2015Ever s…

算法

1. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少 &#xff0c; 用递归算法实现。 该数列为斐波那契数列&#xff0c;规律为第三位为前两位之和。 2. 求表达式的值&#xff0c;写出一种或几种实现方法&#xff1a; 1-23-4……m 3. 编程实…

mysql链接超时问题_mysql连接超时的问题处理

Nutch主要类代码分析之一(Injector)Injector(org.apache.nutch.crawl.Injector): 输入:种子列表文件所在的目录 输出:crawldb(保存URL以及其相应信息的数据库) 作用:把种子URL注入到c ...Hibernate中的inverseinverse inverse的英文意思是反向的,倒转的 Hibernate配置文件中的i…