mysql高可用双主配置

2024-04-05 21:58

本文主要是介绍mysql高可用双主配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.环境配置
master A  192.168.0.109
master B  192.168.0.112
都已安装完毕mysql 版本为5.7.12
2.复制配置
A
B
server-id=1
server-id=2
log-bin=mysql-master-bin
log-bin=mysql-master-bin
binlog_format= row
binlog_format= row
relay_log_recovery=1
relay_log_recovery=1
log_slave_updates=1
log_slave_updates=1
slave-skip-errors=all
slave-skip-errors=all
auto-increment-offset=1
auto-increment-offset=2
auto-increment-increment=2
auto-increment-increment=2
gtid-mode=on
gtid-mode=on
enforce-gtid-consistency=true
enforce-gtid-consistency=true
参数说明:
binlog_format: 二进制日志的格式,有row、statement和mixed几种类型。
relay_log_recovery: 当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log, 并且重新从master上获取日志,这样就保证了relay-log的完整性。
log_slave_updates: 表示slave将复制事件写进自己的二进制日志。当设置log_slave_updates时,你可以让slave扮演其它slave的master。此时,slave把SQL线程执行的事件写进行自己的二进制日志(binary  log),然后,它的slave可以获取这些事件并执行它,slave可以是其它slave的master,从而扩散master的更新。
slave-skip-errors:跳过主从复制出现的错误 
auto-increment-offset: 自增长字段从那个数开始,他的取值范围是1 .. 65535
auto-increment-increment: 自增长字段每次递增的量,其默认值是1,取值范围是1 .. 65535
在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2。 这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。参考: http://dev.mysql.com/doc/refman/5.0/en/replication-options-master.html
gtid-mode=on:启用gtid类型,基于事务复制,否则就是普通的复制架构database
enforce-gtid-consistency=true:强制GTID的一致性
slave-parallel-type='logical_clock':基于组提交的并行复制方式,默认database 基于库的并行复制方式
slave-paralles-workers=4:设定从服务器的SQL线程数;0表示关闭多线程复制功能;值与你要复制的数据库数目相同即可;
master-info-repository=TABLE :主服信息记录库=表/文件,多源复制需要配置
relay-log-info-repository=TABLE:中继日志信息记录库,多源复制需要配置
sync-master-info=1:同步主库信息

3.步骤
1)按照2中配置修改my.cnf文件,并重启数据库
可以通过如下命令查看:
show master status \G   查看master信息
show variables like 'gtid%';  查看gtid-mode开启状态
2)在master A上创建复制用户:
>create user 'repltest'@'192.168.0.%'  identified by 'abc123' ;
>grant  replication slave on *.* to 'repltest'@'192.168.0.%';
3)在master B建立change master复制信道
>change master to master_host='192.168.0.109',
>master_user='repltest',
>master_password='abc123',
>MASTER_AUTO_POSITION=1;
启动复制 start slave
通过 show slave status \G 查看slave状态

可以查看在master新增的复制用户也通过了过来。
4)在master A建立change master复制信道
>change master to master_host='192.168.0.112',
>master_user='repltest',
>master_password='abc123',
>MASTER_AUTO_POSITION=1;
启动复制 start slave
4.测试同步复制
1)在master A创建数据库 和表 并插入数据
mysql> create database test_db;
mysql> create table temp(id int primary key not null auto_increment,a int,b int,c int as (a*b));
mysql> insert into temp (a,b)values(1,2),(3,4),(5,6);
可以在master B查看数据正常同步。
2)在master B上insert数据也可以及时同步masterA;

配置了双主复制,A和B都可以读写,后续可以配置 Keepalived实现双主热备,具体参考:
http://lizhenliang.blog.51cto.com/7876557/1362313

这篇关于mysql高可用双主配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/878254

相关文章

mysql中的group by高级用法详解

《mysql中的groupby高级用法详解》MySQL中的GROUPBY是数据聚合分析的核心功能,主要用于将结果集按指定列分组,并结合聚合函数进行统计计算,本文给大家介绍mysql中的groupby... 目录一、基本语法与核心功能二、基础用法示例1. 单列分组统计2. 多列组合分组3. 与WHERE结合使

MySQL数据库实现批量表分区完整示例

《MySQL数据库实现批量表分区完整示例》通俗地讲表分区是将一大表,根据条件分割成若干个小表,:本文主要介绍MySQL数据库实现批量表分区的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录一、表分区条件二、常规表和分区表的区别三、表分区的创建四、将既有表转换分区表脚本五、批量转换表为分区

宝塔安装的MySQL无法连接的情况及解决方案

《宝塔安装的MySQL无法连接的情况及解决方案》宝塔面板是一款流行的服务器管理工具,其中集成的MySQL数据库有时会出现连接问题,本文详细介绍两种最常见的MySQL连接错误:“1130-Hostisn... 目录一、错误 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed

sql语句字段截取方法

《sql语句字段截取方法》在MySQL中,使用SUBSTRING函数可以实现字段截取,下面给大家分享sql语句字段截取方法,感兴趣的朋友一起看看吧... 目录sql语句字段截取sql 截取表中指定字段sql语句字段截取1、在mysql中,使用SUBSTRING函数可以实现字段截取。例如,要截取一个字符串字

NGINX 配置内网访问的实现步骤

《NGINX配置内网访问的实现步骤》本文主要介绍了NGINX配置内网访问的实现步骤,Nginx的geo模块限制域名访问权限,仅允许内网/办公室IP访问,具有一定的参考价值,感兴趣的可以了解一下... 目录需求1. geo 模块配置2. 访问控制判断3. 错误页面配置4. 一个完整的配置参考文档需求我们有一

SQL Server身份验证模式步骤和示例代码

《SQLServer身份验证模式步骤和示例代码》SQLServer是一个广泛使用的关系数据库管理系统,通常使用两种身份验证模式:Windows身份验证和SQLServer身份验证,本文将详细介绍身份... 目录身份验证方式的概念更改身份验证方式的步骤方法一:使用SQL Server Management S

MySQL 字符串截取函数及用法详解

《MySQL字符串截取函数及用法详解》在MySQL中,字符串截取是常见的操作,主要用于从字符串中提取特定部分,MySQL提供了多种函数来实现这一功能,包括LEFT()、RIGHT()、SUBST... 目录mysql 字符串截取函数详解RIGHT(str, length):从右侧截取指定长度的字符SUBST

MySQL中的事务隔离级别详解

《MySQL中的事务隔离级别详解》在MySQL中,事务(Transaction)是一个执行单元,它要么完全执行,要么完全回滚,以保证数据的完整性和一致性,下面给大家介绍MySQL中的事务隔离级别详解,... 目录一、事务并发问题二、mysql 事务隔离级别1. READ UNCOMMITTED(读未提交)2

MySQL Workbench工具导出导入数据库方式

《MySQLWorkbench工具导出导入数据库方式》:本文主要介绍MySQLWorkbench工具导出导入数据库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录mysql Workbench工具导出导入数据库第一步 www.chinasem.cn数据库导出第二步

Vue 2 项目中配置 Tailwind CSS 和 Font Awesome 的最佳实践举例

《Vue2项目中配置TailwindCSS和FontAwesome的最佳实践举例》:本文主要介绍Vue2项目中配置TailwindCSS和FontAwesome的最... 目录vue 2 项目中配置 Tailwind css 和 Font Awesome 的最佳实践一、Tailwind CSS 配置1. 安