Mysql 8.0主从复制模式安装(兼容Mysql 5.7)

Mysql V8.0.35安装

官网地址:MySQL :: Download MySQL Community Server

  1. 下载【Mysql 8.0.35】压缩包

  1. 解压压缩包,仅保留6个安装文件即可

mysql-community-client-8.0.31-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm mysql-community-common-8.0.31-1.el7.x86_64.rpm mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm mysql-community-libs-8.0.31-1.el7.x86_64.rpm mysql-community-server-8.0.31-1.el7.x86_64.rpm

  1. 安装Mysql
# 1、检查MySQL需要的依赖
# 给安装MySQL需要的 /tmp文件夹赋权
chmod -R 777 /tmp

# 2、检查依赖
rpm -qa | grep libaio
# 如无
yum install libaio
rpm -qa | grep net-tools
# 如无
yum install net-tools

# 3、按照如下顺序 执行安装
#第1步安装mysql-community-common
rpm -ivh mysql-community-common-8.0.35-1.el7.x86_64.rpm
#第2步安装mysql-community-client-plugin
rpm -ivh mysql-community-client-plugins-8.0.35-1.el7.x86_64.rpm
#第3步安装mysql-community-libs
#如果报错mariadb-libs is obsoleted by mysql-community-libs-8.0.35-1.el7.x86_64
#执行 yum remove mariadb-libs
rpm -ivh mysql-community-libs-8.0.35-1.el7.x86_64.rpm
#第4步安装mysql-community-client
rpm -ivh mysql-community-client-8.0.35-1.el7.x86_64.rpm
#第5步安装mysql-community-icu-data-files
rpm -ivh mysql-community-icu-data-files-8.0.35-1.el7.x86_64.rpm
#第6步安装mysql-community-server
#如果报错
#Failed dependencies:
    #    libnuma.so.1()(64bit) is needed by mysql-community-server-8.0.35-1.el7.x86_64
    #    libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-8.0.35-1.el7.x86_64
    #    libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-8.0.35-1.el7.x86_64
#执行 yum install numactl
rpm -ivh mysql-community-server-8.0.35-1.el7.x86_64.rpm

# 4、查看MySQL版本
mysql --version
# 或
mysqladmin --version
# 或 -i区分大小写,不然找不到
rpm -qa | grep -i mysql

# 5、初始化 生成root用户密码
mysqld --initialize --user=mysql

# 6、查看密码 [_#F8,8yL_n/0];[w;eabA+L2E*]
cat /var/log/mysqld.log

# 7、查看MySQL运行状态
systemctl status mysqld

# 8、启动MySQL服务
systemctl start mysqld

# 9、查询当前MySQL是否开机自启动
systemctl list-unit-files | grep mysqld.service

# 10、如果是disable,可设置开机自启动
systemctl enable mysqld.service

# 11、命令行登录
mysql -uroot -p

# 12、提示修改密码
alter user 'root'@'localhost' identified by 'Sdmc@2023ab';

#13、配置运行远程登录
use mysql                                            #访问mysql库
update user set host = '%' where user = 'root';      #使root能再任何host访问
FLUSH PRIVILEGES;                                    #刷新
  1. 配置Mysql 5.7兼容

a.配置不区分大小写lower_case_table_names

注意,重启后mysql密码会重置,需要重新查看mysql密码,才可以进行连接。

#1.MySQL8.0下修改此配置重启时禁止启动,如需更该需做如下操作
# a.停止MySQL服务
# b.删除数据目录(慎重),即删除/var/lib/mysql 目录
# c.在MySQL配置文件my.cnf中添加
lower_case_table_names=1
# d.启动服务器
# d.查看mysql密码
cat /var/log/mysqld.log

b.更改为InnoDB引擎或删除分区(未执行)

ALTER TABLE part ENGINE = INNODB;

c.设置兼容模式sql_mode

sql_mode=TRADITIONAL

  1. 配置Mysql 8.0主从复制

a.主服务器(Master)上修改配置文件(my.cnf)新增下面参数:

#1.MySQL8.0下修改此配置重启时禁止启动,如需更该需做如下操作
# a.停止MySQL服务
# b.删除数据目录(慎重),即删除/var/lib/mysql 目录
# c.在MySQL配置文件my.cnf中添加
lower_case_table_names=1
# d.启动服务器
# d.查看mysql密码
cat /var/log/mysqld.log

b.主服务器(Master)重启Mysql服务

systemctl restart mysqld

c.主服务器(Master)的数据库中创建用于复制的账户并授予相应的权限。

#1.登录MySQL
mysql -uroot -p
#2.切换MySQL
use mysql;
#3.创建用户
CREATE USER 'db_sync'@'%' IDENTIFIED BY 'Sdmc@123';
#4.授权账号复制权限
GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%';
#5.刷新配置
FLUSH PRIVILEGES;

d.主服务器(Master)上执行以下命令获取当前二进制日志文件的名称和位置:

SHOW MASTER STATUS;

f.从服务器(Slave)上修改配置文件(my.cnf)/etc/my.cnf

server-id = 2
#中继日志文件的名称,用于从主服务器接收二进制日志事件。
relay-log = mysql-relay-bin 
#从服务器的二进制日志文件的名称。
log_bin = mysql-bin 
#不同步相关的库
replicate-ignore-db = mysql 
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema

重启Mysql服务

#重启MySQL服务 systemctl restart mysqld

g.登录从服务器(Slave)MySQL上根据主服务器建立的账号和show master status;显示的内容,修改以下命令配置主从复制(根据主服务上的配置进行修改)

#1.进入Mysql登录

mysql -uroot -p

#2.停止Mysql从服务

STOP SLAVE;

进行Master设置

CHANGE MASTER TO
 #设置主服务器的IP
 MASTER_HOST = '10.148.0.22',
  #设置主服务器的账号
 MASTER_USER = 'db_sync',
  #设置主服务器的密码
 MASTER_PASSWORD = 'Sdmc@123',
 #主服务器数据库上的file值(不能有空格)
 MASTER_LOG_FILE = 'mysql-bin.000001',
 #主服务器数据库的Position值
 MASTER_LOG_POS = 157,
 get_master_public_key=1;

#启动Slave

start slave;

#查看主从同步开启状态 SHOW SLAVE STATUS\G;

注意:如果手欠,不小心把从库的数据删除后,导致同步失败;

重新执行

#停止Slave同步
stop slave;
#从小设置binlog行数
CHANGE MASTER TO
 MASTER_HOST = '10.148.0.22',
 MASTER_USER = 'db_sync',
 MASTER_PASSWORD = 'Sdmc@123',
 MASTER_LOG_FILE = 'mysql-bin.000001',
 #主服务器数据库的Position值(最新的值)
 MASTER_LOG_POS = 3429,
 get_master_public_key=1;

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

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

相关文章

一文带你拿下MySQL之增删查改(基础)

✏️✏️✏️今天给各位带来的是关于数据库增删查改基础方面的知识。 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! 动动你们发财的小手&#xf…

消息中间件——RabbitMQ(三)理解RabbitMQ核心概念和AMQP协议!

前言 本章学习,我们可以了解到以下知识点: 互联网大厂为什么选择RabbitMQ?RabbiMQ的高性能之道是如何做到的?什么是AMQP高级协议?AMQP核心概念是什么?RabbitMQ整体架构模型是什么样子的?Rabbi…

[译]JavaScript中Base64编码字符串的细节

本文作者为 360 奇舞团前端开发工程师 本文为翻译 原文标题:The nuances of base64 encoding strings in JavaScript 原文作者:Matt Joseph 原文链接:https://web.dev/articles/base64-encoding Base64编码和解码是一种常见的将二进制内容转…

【剪枝】torch-pruning的基本使用

论文:DepGraph: Towards Any Structural Pruning 工程:https://github.com/VainF/Torch-Pruning 算法和库的使用介绍:CVPR 2023 | DepGraph 通用结构化剪枝 1 TP的简介 该算法介绍了DepGraph 如何建模结构化剪枝中的层依赖,实现任…

redis的集群

高可用方案 1、持久化 2、高可用 主从复制 哨兵模式 集群 主从复制: 主从复制是redis实现高可用的基础,哨兵模式和集群都是在主从复制的基础之上实现高可用 主从复制实现数据的多机备份,以及读写分离(主服务器负责写,从服务器…

云HIS系统源码,医院管理系信息统源码,融合B/S版四级电子病历系统

医院管理信息系统是以推进公共卫生、医疗、医保、药品、财务监管信息化建设为着力点,整合资源,加强信息标准化和公共服务信息平台建设,逐步实现统一高效、互联互通的管理系统。 SaaS模式Java版云HIS系统,在公立二甲医院应用三年…

代餐粉产业分析:中国市场销售额增长至116.94亿元

近年来,随着人们生活节奏的加快和健康意识的增强,代餐粉市场规模逐渐壮大。在这个忙碌的时代,快捷、营养而又方便的代餐粉成为了许多人选择的首选。 随着健康理念的不断普及和推广,人们开始更加重视日常饮食的健康与营养。代餐粉作…

Vellum —— 简介

目录 一,介绍 二,原理 三,PBD算法 一,介绍 Vellum是一个解算模拟框架,使用更高级的PBD(XPBD,extended position based dynamics),是2nd Order Integration&#xff08…

Go 实现网络代理

使用 Go 语言开发网络代理服务可以通过以下步骤完成。这里,我们将使用 golang.org/x/net/proxy 包来创建一个简单的 SOCKS5 代理服务作为示例。 步骤 1. 安装 golang.org/x/net/proxy 包 使用以下命令安装 golang.org/x/net 包,该包包含 proxy 子包&am…

2023亿发数字化智能工单,专业管理工单处理全流程,助力企业转型腾飞

伴随着智能化和信息化的不断深入,企业数字化转型势如腾飞。在这个过程中,工单管理成为生产、家电、后勤等多个管理场景下频繁应用的关键环节。如何满足管理方对设备、服务等智能化管理的需求,提升工单管理效率、规范管理流程,并实…

问题:vue2+elementui,tabs切换显示表格并设置表格选中行高亮失败

错误示范: 1.直接setCurrentRow失败(this.currentRow是之前保存的表格当前选中行的数据) this.$refs.table.setCurrentRow(this.currentRow);2.以为是表格没生成就执行了setCurrentRow导致设置不成功,所以使用了this.$nextTick&…

英国国家量子计算中心与IBM签署重要协议!英国进入实用量子时代

​(图片来源:网络) 近日,英国国家量子计算中心(NQCC)与IBM达成了一项重要协议。根据该协议,NQCC将为英国研究人员提供IBM量子高级计划的云访问权限,其中包括IBM的量子计算系统舰队。…

SpringBoot Admin

前言 Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目,它提供了一个简洁的 Web 界面来监控 Spring Boot 应用程序的状态和各种运行时指标。Spring Boot Admin 可以帮助开发者快速了解应用程序的状态,并快速定位错误或性能问题。下面…

赛氪荣幸受邀参与中国联合国采购促进会第五次会员代表大会

11 月21 日 (星期二) 下午14:00,在北京市朝阳区定福庄东街1号中国传媒大学,赛氪荣幸参与中国联合国采购促进会第五次会员代表大会。 2022年以来,联合国采购杯全国大学生英语大赛已经走上了国际舞台,共有来自…

HC32L110小华半导体SWD模式切换的问题

在将SWD配置为普通引脚并配置为输出后,如果需要重新配置为SWD,需要将其配置为输入才行,如下: Clk_SetFunc(ClkFuncSwdPinIOEn, TRUE); //配置SWD引脚为普通引脚模式 Gpio_InitIOExt(SWCLK_PORT, SWCLK_PIN, GpioDirOut, TRUE,…

垃圾收集器的种类及概述

1.JVM参数 1.1标准参数所有jdk版本通用参数 -version -help -server -cp 1.2-X参数 非标准参数,也就是在JDK各个版本中可能会变动 -Xint 解释执行 -Xcomp 第一次使用就编译成本地代码 -Xmixed 混合模式,JVM自己来决定 1.3 -XX参数 使用得最多…

一个测试驱动的Spring Boot应用程序开发

文章目录 系统任务用户故事搭建开发环境Web应用的框架Spring Boot 自动配置三层架构领域建模域定义与领域驱动设计领域类 业务逻辑功能随机的Challenge验证 表示层RESTSpring Boot和REST API设计API第一个控制器序列化的工作方式使用Spring Boot测试控制器 小结 这里采用面向需…

悄悄上线:CSS @starting-style 新规则

最近 Chrome 117,CSS 又悄悄推出了一个新的的规则,叫做starting-style。从名称上来看,表示定义初始样式。那么,具体是做什么的?有什么用?一起了解一下吧 一、快速了解 starting-style 通常做一个动画效果…

vue3引入vuex基础

一:前言 使用 vuex 可以方便我们对数据的统一化管理,便于各组件间数据的传递,定义一个全局对象,在多组件之间进行维护更新。因此,vuex 是在项目开发中很重要的一个部分。接下来让我们一起来看看如何使用 vuex 吧&#…

OpenLayers入门,OpenLayers6的WebGLPointsLayer图层样式和运算符详解,四种symbolType类型案例

专栏目录: OpenLayers入门教程汇总目录 前言 本章讲解使用OpenLayers6的WebGL图层显示大量点情况下,列举出所有WebGLPointsLayer图层所支持的所有样式运算符大全。 补充说明 本篇主要介绍OpenLayers6.x版本的webgl图层,OpenLayers7.x和OpenLayers8.x主要更新内容就是webgl…