MYSQL二主二从集群部署

目录

一、环境描述

二、安装mysql

2.1 卸载mysql(如果没安装过,可忽略)

2.1.1 列出安装的mysql

2.1.2 卸载mysql

2.1.3 删除mysql文件目录

2.1.3.1 查看mysql 目录

2.1.3.2 依次删除

2.2 在线安装

2.2.1 下载安装源

2.2.2 安装源rpm

2.2.3 加入rpm密钥

2.2.4 执行安装

2.2.5 设置开机自启动

2.2.6 修改密码

2.2.6.1 获取临时密码

2.2.6.2 登录MySQL

2.2.6.3 设置密码策略

 2.2.6.4 设置密码最小长度

2.2.6.5 设置root密码

2.2.6.6 开启MySQL远程连接权限

三、主从关系配置

3.1 主库设置(主库一)

3.1.1修改/etc/my.cnf

3.1.2 重启mysql

3.1.3 创建从数据库连接账号/密码

3.2  主库设置(主库二)

3.2.1 修改/etc/my.cnf

3.2.2 重启mysql

3.2.3 创建从数据库连接账号/密码

3.3 设置主库之间进行数据同步

3.3.1 主库一同步/复制数据

3.3.1.1 查看master信息

3.3.1.2 设置同步信息

3.3.1.3 开启同步

3.3.1.4 查看同步状态

3.3.2 设置主库二同步/复制数据数据

3.3.2.1 查看master信息

3.3.2.2 设置同步信息

3.3.2.3 开启同步

3.3.2.4 查看同步状态

3.3.3  验证主库之间同步数据

3.4 从库设置(从库一)

3.4.1 修改/etc/my.cnf

3.4.2 重启mysql

3.4.3 设置从库向主库同步/复制数据

3.4.3.1 登录数据库

3.4.3.2 查看同步状态(主库一、主库二)

3.4.3.3 设置主库登录信息

3.4.3.4 开启同步

3.4.3.5 查看同步状态

3.5 从库设置(从库二)

3.5.1 修改/etc/my.cnf

3.5.2 重启mysql

3.5.3 设置从库向主库同步/复制数据

3.5.3.1 登录数据库

3.5.3.2  查看同步状态(主库一、主库二)

3.5.3.3 设置主库登录信息

3.5.3.4 开启同步

3.5.3.5 查看同步状态

3.5.3.6 验证从库之间同步数据


一、环境描述

系统环境描述:本教程基于CentOS 8.0版本虚拟机

mysql 规划(二主二从)

节点MySQL(主)MySQL(从)IP
node1*192.168.31.8
node2*192.168.31.9
node3*192.168.31.167
node4*192.168.31.154

软件版本:
MySQL   5.7

二、安装mysql

2.1 卸载mysql(如果没安装过,可忽略)

2.1.1 列出安装的mysql

rpm -qa | grep -i mysql

2.1.2 卸载mysql

-- 依次卸载上一步骤罗列出来的依赖

yum remove mysql-common-8.0.26-1.module_el8.4.0+915+de215114.x86_64

yum remove mysql57-community-release-el7-10.noarch

2.1.3 删除mysql文件目录

2.1.3.1 查看mysql 目录
find / -name mysql
2.1.3.2 依次删除
rm -rf /var/lib/selinux/targeted/active/modules/100/mysql

2.2 在线安装

2.2.1 下载安装源

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

2.2.2 安装源rpm

yum -y install mysql57-community-release-el7-10.noarch.rpm

2.2.3 加入rpm密钥

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

2.2.4 执行安装

yum -y install mysql-community-server

在CentOS 8 下会报错:错误:没有任何匹配: mysql-community-server
原因是:【注】出现问题的核心原因为:基于RHEL 8和Oracle Linux 8的基于EL8的系统,在默认情况下附带了一个名为mysql的模块。 除非禁用此模块,否则它将屏蔽,
存储库提供的软件包。只要是 EL8系统安装任何版本的 MySQL 都会有这样的问题。

需要执行一下命令:yum module disable mysql

接着再执行:yum -y install mysql-community-server

然后安装是,执行事务检查报错:
错误:事物测试失败:
file /etc/my.cnf from install of mysql-community-server-5.7.43-1.el7.x86_64 conflicts with file from package mariadb-connector-c-config-3.1.11-2.el8_3.noarch

原因分析:
网上搜了下,说是我的yum 里面安装了mariadb-connector-c-config.noarch ,于是就要执行命令查看一下

yum list installed

果然如此,于是,就要删除掉mariadb-connector-c-config.noarch,

yum remove mariadb-connector-c-config.noarch

接着再执行:

yum -y install mysql-community-server


成功了

2.2.5 设置开机自启动

systemctl start mysqld.service

systemctl status mysqld.service

2.2.6 修改密码

2.2.6.1 获取临时密码
grep "password" /var/log/mysqld.log
2.2.6.2 登录MySQL
mysql -uroot -p
2.2.6.3 设置密码策略
#设置密码策略为LOW,此策略只检查密码的长度

set global validate_password_policy=LOW;
 2.2.6.4 设置密码最小长度
set global validate_password_length=6;
2.2.6.5 设置root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'xiaoning';
2.2.6.6 开启MySQL远程连接权限
grant all privileges  on  *.* to 'root'@'%' identified by 'xiaoning' with grant option;

提示:以上操作,二主二从服务器都需要执行!

三、主从关系配置

3.1 主库设置(主库一)

3.1.1修改/etc/my.cnf

vim  /etc/my.cnf


#开启⼆进制⽇志
log-bin=mysql-bin
#设置服务id
server-id=1

#设置不要复制的数据库

binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#设置需要复制的数据库
binlog-do-db=mydb
#设置logbin格式;可选值:STATEMENT、ROW、MIXED
binlog_format=STATEMENT

#作为从数据库的时候,有写⼊操作也要更新⼆进制⽇志⽂件

log-slave-updates=1

#⾃增⻓字段从哪个数开始

auto-increment-offset=1

#⾃增⻓字段每次递增的量

auto-increment-increment=2

#中继日志

relay-log=relay-log-bin

#中继日志

relay-log-index=relay-log-bin.index

3.1.2 重启mysql

systemctl restart mysqld.service

3.1.3 创建从数据库连接账号/密码

# 创建slave⽤户
CREATE USER 'ning_slave1'@'%' IDENTIFIED BY 'xiaoning';
# 设置密码
ALTER USER 'ning_slave1'@'%' IDENTIFIED WITH
mysql_native_password BY 'xiaoning';
# 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'ning_slave1'@'%';
# 刷新权限
FLUSH PRIVILEGES;

3.2  主库设置(主库二)

3.2.1 修改/etc/my.cnf

#开启⼆进制⽇志
log-bin=mysql-bin
#设置服务id
server-id=2

#设置不要复制的数据库

binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
binlog-ignore-db=sys
#设置需要复制的数据库
binlog-do-db=mydb
#设置logbin格式;可选值:STATEMENT、ROW、MIXED
binlog_format=STATEMENT

#作为从数据库的时候,有写⼊操作也要更新⼆进制⽇志⽂件

log-slave-updates=1

#⾃增⻓字段从哪个数开始

auto-increment-offset=2

#⾃增⻓字段每次递增的量

auto-increment-increment=2

#中继日志

relay-log=relay-log-bin

#中继日志

relay-log-index=relay-log-bin.index

3.2.2 重启mysql

systemctl restart mysqld.service

3.2.3 创建从数据库连接账号/密码

# 创建slave⽤户
CREATE USER 'ning_slave2'@'%' IDENTIFIED BY 'xiaoning';
# 设置密码
ALTER USER 'ning_slave2'@'%' IDENTIFIED WITH
mysql_native_password BY 'xiaoning';
# 授予复制权限
GRANT REPLICATION SLAVE ON *.* TO 'ning_slave2'@'%';
# 刷新权限
FLUSH PRIVILEGES;

3.3 设置主库之间进行数据同步

3.3.1 主库一同步/复制数据

3.3.1.1 查看master信息
show master status\G

3.3.1.2 设置同步信息
CHANGE MASTER TO MASTER_HOST='192.168.31.9',
MASTER_USER='ning_slave2',
MASTER_PASSWORD='xiaoning',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=123;

注意,这里 MASTER_LOG_POS=123;参照的是执行show master status\G命令后返回的Position:  123 值;

3.3.1.3 开启同步
start slave;
3.3.1.4 查看同步状态
show slave status\G;

说明:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两个值都为Yes才是正确的。

3.3.2 设置主库二同步/复制数据数据

3.3.2.1 查看master信息
show master status\G

3.3.2.2 设置同步信息
CHANGE MASTER TO MASTER_HOST='192.168.31.8',
MASTER_USER='ning_slave1',
MASTER_PASSWORD='xiaoning',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;

注意,这里 MASTER_LOG_POS=123;参照的是执行show master status\G命令后返回的Position: 154 值;

3.3.2.3 开启同步
start slave;
3.3.2.4 查看同步状态
show slave status\G;

说明:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两个值都为Yes才是正确的。

3.3.3  验证主库之间同步数据

在主库一新建test库,查看主库二是否同步数据

测试结果发现,主库二同步了主库一新建的数据库,主库部署成功。

3.4 从库设置(从库一)

3.4.1 修改/etc/my.cnf

#开启⼆进制⽇志
log-bin=mysql-bin
#设置服务id
server-id=3
#启⽤中继⽇志

relay-log=relay-log-bin

#中继日志

relay-log-index=relay-log-bin.relay

#开启多通道table

master-info-repository=TABLE
relay-log-info-repository=TABLE

3.4.2 重启mysql

systemctl restart mysqld.service

3.4.3 设置从库向主库同步/复制数据

3.4.3.1 登录数据库
mysql -uroot -p
3.4.3.2 查看同步状态(主库一、主库二)
show master status\G;
3.4.3.3 设置主库登录信息
CHANGE MASTER TO MASTER_HOST='192.168.31.8',
MASTER_USER='ning_slave1',
MASTER_PASSWORD='xiaoning',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154 for channel 'master1';

CHANGE MASTER TO MASTER_HOST='192.168.31.9',
MASTER_USER='ning_slave2',
MASTER_PASSWORD='xiaoning',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154  for channel 'master2';
3.4.3.4 开启同步
start slave;
3.4.3.5 查看同步状态
show slave status\G;

说明:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两个值都为Yes才是正确的。

3.5 从库设置(从库二)

3.5.1 修改/etc/my.cnf

#开启⼆进制⽇志
log-bin=mysql-bin
#设置服务id
server-id=4

#中继日志

relay-log-index=relay-log-bin.relay

#开启多通道table

master-info-repository=TABLE
relay-log-info-repository=TABLE

3.5.2 重启mysql

systemctl restart mysqld.service

3.5.3 设置从库向主库同步/复制数据

3.5.3.1 登录数据库
mysql -uroot -p
3.5.3.2  查看同步状态(主库一、主库二)
show master status\G;
3.5.3.3 设置主库登录信息
CHANGE MASTER TO MASTER_HOST='192.168.31.8',
MASTER_USER='ning_slave1',
MASTER_PASSWORD='xiaoning',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154 for channel 'master1';

CHANGE MASTER TO MASTER_HOST='192.168.31.9',
MASTER_USER='ning_slave2',
MASTER_PASSWORD='xiaoning',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=154  for channel 'master2';
3.5.3.4 开启同步
start slave;
3.5.3.5 查看同步状态
show slave status\G;

说明:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两个值都为Yes才是正确的。

3.5.3.6 验证从库之间同步数据

从主库一新建一个数据库test3,看下两个从库是否会同步数据

测试结果发现,两个从库同步了主库一新建的数据库test3,整个二主二从服务部署成功。

好了,本次分享就到这里,如果帮助到大家,欢迎大家点赞+关注+收藏,有疑问也欢迎大家评论留言!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/287523.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

西安人民检察院 | OLED翻页查询一体机

产品:55寸OLED柔性屏 项目时间:2023年12月 项目地点:西安 在2023年12月,西安人民检察院引入了OLED翻页查询一体机,为来访者提供了一种全新的信息查询方式。 这款一体机采用55寸OLED柔性屏,具有高清晰度、…

虚幻UE 材质-进阶边界混合之WAT世界对齐纹理

边界混合前篇:虚幻UE 材质-边界混合之PDO像素深度偏移量 上一篇主要讲材质相似或者不同的两个物体之间的边界混合 这一篇主要讲自建材质且相同的两个物体之间的边界混合 文章目录 一、世界对齐纹理二、世界对齐纹理实验1、制作材质 三、进一步优化 一、世界对齐纹理…

25计算机专业考研经验贴之准备篇

Hello各位小伙伴,大家新年好! 马上就要进入寒假假期了,25考研也该提上日程了。今天先跟大家分享一下大家在假期可以先做起来的准备工作。 【选择学校】 择校是个非常重要的内容,因为不同学校的考试内容是不一样的,有些…

免费SSL证书:为你的网站安全护航

SSL证书作为保障网站安全的重要工具,其价值不言而喻。然而,许多人对SSL证书望而却步,因为其高昂的价格让人望而生畏。但现在,我们为您带来了福音——免费SSL证书!让您轻松实现网站安全,无惧网络威胁。 一、…

UTF-8编码文件:有BOM和无BOM的区别

UTF-8编码文件:有BOM和无BOM的区别 在处理UTF-8编码的文本文件时,你可能会遇到“有BOM”和“无BOM”两种类型。了解这两者之间的区别对于确保文件兼容性和正确的数据处理至关重要。 什么是BOM? BOM(Byte Order Mark,…

CRM系统如何实现市场销售管理?CRM系统有哪些营销功能

CRM管理系统中的营销管理模块,它的锋芒常被销售管理所掩盖,但对于企业的业务来说同样重要。营销部门虽然不像销售人员一样直接面对客户,却是挖掘线索、商机的重要角色。CRM在市场营销领域的关键功能包括:营销漏斗、客户细分、营销…

javascript 常见工具函数(五)

41.深度拷贝对象: static deepCopyObj$(obj) {var result Array.isArray(obj) ? [] : {};for (var key in obj) {if (obj.hasOwnProperty(key)) {if (typeof obj[key] object && obj[key] ! null) {result[key] Utils$.deepCopyObj$(obj[key]); //递归…

微信好友添加频繁的原因

01 微信好友添加频繁的原因 1. 添加好友的频率太高:短时间内添加多个好友,系统会认为账号被盗,从而限制用户添加好友; 2. 频繁的发送好友请求:在短时间内连续发送好友请求,也会导致微信限制操作&#xff0…

系列五、搭建Naco(集群版)

一、搭建Naco(集群版) 1.1、前置说明 (1)64位Red Hat7 Linux 系统; (2)64位JDK1.8;备注:如果没有安装JDK,请参考【系列二、Linux中安装JDK】 (3&…

HbuilderX中的git的使用

原文链接https://blog.csdn.net/Aom_yt/article/details/119924356

【C++入门】类和对象(完)

前言 在谈论C时,常常会涉及到一些高级特性和概念,比如初始化列表、static成员、友元、内部类、匿名对象等。这些概念在C编程中起着非常重要的作用,对于想要深入了解C语言的开发者来说,掌握这些知识是至关重要的。本文,…

LeetCode第32题 : 最长有效括号

题目介绍 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s "(()" 输出:2 解释:最长有效括号子串是 "()" 示例 2&#xf…

SpringBoot整合mybatis多数据源

废话不多说先上结果 对应数据库 首先导入所需的mybatis、mysql和lombok依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version></dependen…

关于我花费六千多组了台window+Linux主机

一边学习&#xff0c;一边总结&#xff0c;一边分享&#xff01; 写在前面 我在2023年12月组了一台“洋垃圾”的主机&#xff0c;一边当做台式机使用&#xff0c;一边当做服务器使用。这个方案算是相对比较划算的方案。我开始是打算直接单做服务器使用的&#xff0c;以及内存…

【好书推荐】只更新软件,座椅为何能获得加热功能?《一书读懂物联网:基础知识+运行机制+工程实现》

文章目录 什么是OTA&#xff1f;OTA方案的特点时间短、效率高合理使用无线资源&#xff0c;提升终端更新的服务效率高可靠性通用性 OTA系统的参考架构和服务流程结语 2020年&#xff0c;特斯拉发布过一次OTA更新&#xff0c;车主可以通过这次系统更新获得座椅加热功能。当时&am…

微信小程序使用echarts报错 ReferenceError: Image is not defined 解决

报错 ReferenceError: Image is not defined 在用uni-app开发微信小程序时&#xff0c;使用到了echarts&#xff08;V4.6.0&#xff09;配置项中的icon属性&#xff0c;微信开发者工具报错如下&#xff1a; 定位问题 定位问题到了压缩echarts文件中的new Image 使用非压缩…

LiveGBS国标GB/T28181流媒体平台功能-国标级联中作为下级平台对接海康大华宇视华为政务公安内网等GB28181国标平台查看级联状态及会话

LiveGBS国标级联中作为下级平台对接海康大华宇视华为政务公安内网等GB28181国标平台查看级联状态及会话 1、GB/T28181级联是什么2、搭建GB28181国标流媒体平台3、获取上级平台接入信息3.1、如何提供信息给上级3.2、上级国标平台如何添加下级域3.2、接入LiveGBS示例 4、配置国标…

脆弱的SSL加密算法漏洞原理以及修复方法

漏洞名称&#xff1a;弱加密算法、脆弱的加密算法、脆弱的SSL加密算法、openssl的FREAK Attack漏洞 漏洞描述&#xff1a;脆弱的SSL加密算法&#xff0c;是一种常见的漏洞&#xff0c;且至今仍有大量软件支持低强度的加密协议&#xff0c;包括部分版本的openssl。其实&#xf…

【深度学习-图像分类】03 - VGG 论文学习与总结

论文地址&#xff1a;VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 论文学习 1. 摘要 这篇论文探讨了在大规模图像识别任务中&#xff0c;卷积神经网络&#xff08;ConvNets&#xff09;深度对其准确性的影响。作者的主要贡献是对不断增加深度的网络…

mybatis-flex笔记

MyBatis-Flex 的增删改功能 - MyBatis-Flex 官方网站https://mybatis-flex.com/zh/base/add-delete-update.html 代码https://gitee.com/hntianshu/mybatis-flex-test 一 新增数据 不忽略 null 值。 就是允许有null 忽略null 就是不允许有null BaseMapper 的接口提供了 inser…