Centos7 Mysql 5.6 多主一从 解决方案与详细配置

yizhihongxing

一、背景介绍

在实际应用中,可能遇到多个Mysql数据库需要同时用于读写操作,这时候就需要多主配置。同时,为了提高数据可用性,在多主的情况下还需要加入从库进行备份。本文将介绍如何在CentOS7环境下,使用Mysql 5.6版本进行多主一从配置。

二、解决方案

1.多主一从模式

多主一从是最常用的Mysql集群模式之一。在多主模式下,用户可以通过任何一个节点进行数据的读写操作。在一定程度上解决了单点故障问题。而从库则是用于数据备份的,当主库出现故障时,可以快速地切换到从库上。

2.配置环境

本文的实验环境为:

Mysql版本:5.6.47

操作系统:CentOS Linux release 7.8.2003

在环境中,需要安装Mysql主从同步的插件——repmgr。

3.配置步骤

3.1、安装Mysql

首先,我们需要安装Mysql,并保证其正常运行。在CentOS7系统上,安装Mysql的命令为:

yum install mysql-server mysql mysql-devel -y

安装完成后,使用如下命令启动Mysql:

systemctl start mysqld.service

3.2、创建主库和从库

由于本文中使用的是两台机器进行测试,所以需要分别在两台机器上创建主库和从库。

主库创建命令:

create database test;
use test;
create table stu(id int(4), name varchar(20));
insert into stu values(1, 'Tom');
insert into stu values(2, 'Jim');
insert into stu values(3, 'Jane');

从库创建命令:

stop slave;
change master to master_host='IP地址', master_port=3306, master_user='用户名', master_password='密码', master_log_file='mysql-bin.xxx', master_log_pos=文件偏移量;
start slave;

3.3、配置repmgr

在Master1、Master2、Slave三个节点上,进行软件的安装和配置。

安装repmgr:

yum install repmgr -y

在每个节点上,都需要进行如下操作:

(1)创建repmgr用户,用于主从同步:

create user repmgr identified by '密码';

(2)在主库上,执行如下命令:

pg_ctl restart -D /path/to/data 

repmgr -f /etc/repmgr.conf --daemonize

(3)在从库上,执行如下命令:

pg_ctl restart -D /path/to/data 
repmgr -f /etc/repmgr.conf --daemonize 
repmgr standby clone -U repmgr -D /path/to/data -l /var/log/postgresql/repmgr.log --fast-checkpoint

(4)在从库上,执行如下命令:

repmgr standby register -U repmgr -D /path/to/data -h 主库IP地址 -p 5432 --verbose

(5)在一个主库上新增一条数据,可以在其他主库和从库上查看到新增的数据。

三、示例说明

1.在两台主库中添加数据,可以在任何一个主库和从库上查看到新增的数据。

Master 1:
insert into stu values(4, 'Lily');

Master 2:
insert into stu values(5, 'Jerry');

Slave:
select * from stu;

2.在主库1上的数据发生变化时,可以在所有的主库和从库上查看到数据的变化。

Master 1:
update stu set name='Jack' where id=1;

Master 2:
select * from stu;

Slave:
select * from stu;

以上就是关于CentOS7 Mysql 5.6 多主一从 解决方案与详细配置的攻略,希望对读者有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Centos7 Mysql 5.6 多主一从 解决方案与详细配置 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • windows下mysql-python安装出错

    注意:python2.x用mysql-python,从Python3.x起,变更为mysqlclient windows安装python的mysql驱动是so easy的: pip install mysql-python 但是毫不意外的出错了: _mysql.c(42) : fatal error C1083: Cannot open include fi…

    MySQL 2023年4月12日
    00
  • VPS自动备份数据库到FTP的脚本代码

    首先,我们需要明确什么是VPS、FTP和数据库自动备份脚本。VPS指的是Virtual Private Server,即虚拟专用服务器,是一种虚拟化技术,能够在一台物理机器上划分出多个独立的虚拟服务器。FTP指的是文件传输协议,是一种用于文件传输的网络协议。数据库自动备份脚本则是一段自动化脚本代码,能够在设定时间内自动备份VPS服务器上的数据库,并将备份文件…

    database 2023年5月22日
    00
  • Mybatis的介绍、基本使用、高级使用

    Mybatis介绍 MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。Mybatis免除了几乎所有的JDBC代码和手动设置参数以及获取查询结果集的过程。MyBatis可以使用XML或注解进行配置和映射,具有非常强的灵活性和可定制性。 Mybatis基本使用 环境搭建 Mybatis的使用需要在Java开发环境中使用Maven或G…

    database 2023年5月22日
    00
  • MySql 之UUID()

    mysql中做了个定时执行的事件,发现原来起作用,现在不行了。 调用/var/lib/mysql中的错误日志文件,发现一句: Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsaf…

    MySQL 2023年4月12日
    00
  • Mysql索引覆盖

    通常情况下,我们创建索引的时候只关注 where 条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是 where 条件部分,还应该关注查询所包含的列。索引确实是一种高效的查找数据方式,但是 mysql 也可以从索引中直接获取数据,这样就不在需要读数据行了。 作者:京东零售 孙涛 1.什么是覆盖索引 通常情况下,我们创建索引的时候只…

    MySQL 2023年4月12日
    00
  • redis实践 —— redisReply简析

    redisReply 定义如下: /* This is the reply object returned by redisCommand() */ typedef struct redisReply { int type; /* 返回值类型 */ long long integer; /* 当返回类型为 REDIS_REPLY_INTEGER 时 */ s…

    Redis 2023年4月16日
    00
  • MongoDB GridFS(二进制数据存储)使用方法详解

    什么是GridFS? MongoDB是一款文档型数据库,存储的数据是以BSON格式保存的。由于文档型数据库的特点,它适合存储小型的数据块,但对于大型的二进制数据,如音频、视频等文件,存储时可能需要分成多个文档进行存储。这种情况下,MongoDB提供了GridFS这个存储引擎。 GridFS是一个存储二进制数据(如图片、音频、视频等)的规范,它将大文件拆分成多…

    MongoDB 2023年3月14日
    00
  • 请问在mssql“SQL事件探查器”里表格的标题,如CPU,Read,Write,Duration,SPID………的解释

    关于“SQL事件探查器”中表格的标题,如CPU,Read,Write,Duration,SPID等等的解释,可以分别进行解释,具体内容如下: CPU CPU表示在SQL Server 实例上执行SQL语句时,在CPU上所花费的时间。这是非常重要的性能指标,因为SQL Server 实例的CPU使用率往往是瓶颈。此时可以通过事件探查器中的CPU指标查看哪些SQ…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部