MySQL8.0主从复制实现及遇到的个人问题

文章目录

  • 1、准备两个服务器或者虚拟机
  • 2、主库配置
  • 3、从库配置
  • 4、配置过程中使用到的命令
  • 5、遇到的问题

1、准备两个服务器或者虚拟机

这里使用的VM虚拟机的Centos、MySQL版本是8.0.26、使用FinalShell进行远程操作。

2、主库配置

  1. 修改MySQL配置文件(/etc/my.cnf)
#启用二进制日志
log-bin=mysql-bin
#服务器唯一id(不能重复)
server-id=100

在这里插入图片描述

  1. 重启mysql服务
    linux命令:systemctl restart mysqld
  2. 登录MySQL
  3. 创建用户并分配权限
    因为我的MySQL版本是8.0,必须要创建用户和分配用户权限分开操作。
# 已经不再使用
GRANT REPLICATION SLAVE ON *.* TO 'mengting'@'%' identified by '123456';
# 先创建用户,在赋予权限
# 在创建用户的时候,必须设置密码的等级  不然会创建失败(根据自己的设置进行决定)
set global validate_password.policy = 0;
set global validate_password.length = 10;

CREATE USER 'mengting'@'%' IDENTIFIED BY '1111111111';
GRANT REPLICATION SLAVE ON *.* TO 'mengting'@'%';
  1. 执行show命令并记录File和Position(非常重要)
show master status;
# 执行完就不要进行操作了

在这里插入图片描述

3、从库配置

  1. 测试:是否能在从数据库使用上面创建的用户访问主数据库
# -u后面是账号,-p后面是密码,ip是主数据库的ip地址
mysql -h 192.168.110.110 -umengting -p1111111111
# 如果可以连接成功证明端口都是可以正常连接的
# 如果不能连通可以查看一下是否是防火墙的原因(可以暂时关闭防火墙)
  1. 修改MySQL配置文件(/etc/my.cnf)
#不要重复即可
server-id=101

在这里插入图片描述
3. 重启MySQL服务

#重启MySQL服务
systemctl restart mysqld
  1. 执行sql
#刚才记录的File和Position在这里要使用
#将master_log_file与master_log_pos修改为自己对应的值
change master to master_host='192.168.110.110',
master_user='mengting',master_password='1111111111',
master_log_file='mysql-bin.000001',master_log_pos=439;
  1. 查看从机状态
show slave status \G;

在这里插入图片描述
看到两个Yes代表配置成功了,可以进行测试了。

4、配置过程中使用到的命令

  1. linux命令:
--查看ip地址
ifconfig或ip addr
--暂时关闭防火墙
systemctl stop firewalld
--查看防火墙状态
systemctl status firewalld
--紧张开机启动防火墙
systemctl disable firewalld
--重启mysql服务
systemctl restart mysqld
--查看mysql服务状态
systemctl status mysqld
--启动mysql服务
systemctl start mysqld
--停止mysql服务
systemctl stop mysqld
--查看mysql错误日志
vim /var/log/mysql.log
--查看自动生成的root密码
grep 'temporary password' /var/log/mysqld.log
--查看是否开启某个端口
netstat -an|grep 3306
  1. mysql命令:
--远程登录
mysql -h 192.168.110.110 -uroot -p123456
--停止复制进程
stop slave;

--重置复制状态(常用)
--RESET SLAVE命令用于重置复制状态。当你执行这个命令时,
--从服务器会删除所有复制相关的状态信息,包括二进制日志文件和位置、
--错误日志、中继日志等。这相当于重新初始化从服务器的复制状态,
--以便重新开始从主服务器同步数据。
--注意,这个命令需要具有足够权限的管理员或用户才能执行。
reset slave;
--开启复制进程
start slave;

--设置密码等级
set global validate_password.policy = 0;
--设置密码长度
set global validate_password.length = 4;
--创建用户
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
--分配用户权限(全部权限)
grant all on *.* to 'root'@'%';
--在主服务器创建从机数据库用户(用于主从复制)
CREATE USER 'mengting'@'%' IDENTIFIED BY '0123456789';
GRANT REPLICATION SLAVE ON *.* TO 'mengting'@'%';

--从机服务器进行主从复制
change master to master_host='192.168.110.110',
master_user='mengting',master_password='1111111111',
master_log_file='mysql-bin.000001',master_log_pos=156;
--查看主机(主数据库)状态
show master status;
--查看从机
show slave status;

5、遇到的问题

  1. Slave_IO_Running显示NO
    Slave_SQL_Running显示NO
    检查配置文件是否出错、检查是否成功开启主从复制SQL语句、检查服务器端口是否开放、检查是否可以在从机服务器连接到主机数据库(重要)

  2. Slave_IO_Running显示Connection
    Slave_SQL_Running显示NO
    检查网络是否连接,如果网络没有问题可以等待一会(比较慢)

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

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

相关文章

《深入理解JAVA虚拟机》学习笔记

1.java内存结构,以及每个结构的作用? 线程共享区 堆内存:所有的对象实例都要在堆上分配方法区:是各个线程共享的内存区域,它用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据非线程共享区 Java虚拟机栈:每…

Sentinel使用

前言: 所有的准备工作都做好了,就可以进入到Sentinel的具体使用上了,这里还需要一个测试工具叫做jmeter,是一个很好的测试工具,专门针对并发的,准备好以后,就可以直接开干了。 一、Sentinel作用…

2下载Spring,第一个Spring程序+Log4j

https://www.yuque.com/dujubin/ltckqu/kipzgd#,注意的是,现在(202401)SpringFramework从release搬到了snapshot下,在这下面找到6.0.2下载. 下载后解压到文件夹,整个框架包含非常多jar包。 然后就可以在p…

UMLChina书籍大全(2024)软件方法人月神话人件企业应用架构模式UML参考手册彩色UML建模领域驱动设计对象设计……

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 以下列出有UMLChina标记的书。 首先是写了十几年还没有写完的软件方法 其他的是译作: 人月神话 2002年,UMLChina和清华大学出版社合作,翻译了《人…

linux性能优化

文章目录 性能优化图CPU进程和cpu原理性能指标 性能优化图 CPU 进程和cpu原理 进程与线程: 进程是程序的执行实例,有自己的地址空间和系统资源。线程是进程内的执行单元,共享进程的资源。在多核系统中,使用多线程可以更好地利用多…

倒排索引

正向索引:id(序号)--》 内容(文档或记录)--》关键词 ,这个过程。 倒排索引:关键词 --》id(序号)--》内容,这个过程。 在有些图书的最后也有倒排索引的例子 …

Elasticsearch 中映射参数doc_values 和 fielddata分析比较

一、doc_values 默认情况下,大部分字段是索引的,这样让这些字段可被搜索。倒排索引(inverted index)允许查询请求在词项列表中查找搜索项(search term),并立即获得包含该词项的文档列表。 倒排…

适口性好的猫粮:性价比高的主食冻干测评推荐

冻干猫粮因其高营养和适口性,受到了众多铲屎官们的喜爱和追捧。冻干猫粮的喂养方式非常简单,可以直接喂食,也可以将冻干复水后喂食,根据猫咪的不同喜好可以选择不同的喂养方式。然而,有些铲屎官在选择冻干猫粮时会担心…

反距离加权水平内插,附matlab代码(ERA5和GNSS站点不并址的处理方法之水平补偿)

1.内插方法 我在学习过程,内插方法为反距离加权水平内插,分享我的方法和公式,以及matlab代码。 2.使用该内插法的原因 GNSS与ERA5格网位置不并址,需要进行水平方向和垂直方向的补偿的补偿获得。水平方向不并址如第3节图所示&am…

羊大师讲解,羊奶为什么更适合高血压人群?

羊大师讲解,羊奶为什么更适合高血压人群? 高血压是一种常见的健康问题,它会引起诸多并发症并增加心脑血管疾病的风险。与此同时,人们越来越关注饮食对健康的影响。作为一种营养丰富且适合高血压人群的饮品,羊奶备受关…

如何使用 Python+selenium 进行 web 自动化测试?

Selenium是一个自动化测试工具,它可以模拟用户在浏览器中的操作,比如点击、输入、选择等等。它支持多种浏览器,包括Chrome、Firefox、Safari等等,并且可以在多个平台上运行。 安装和配置Selenium 在使用Selenium之前,…

error:0308010C:digital envelope routines::unsupported 前端项目错误

直接启动命令中增加: SET NODE_OPTIONS--openssl-legacy-provider && vue-cli-service serve

WebGIS开发的常见框架及优缺点

WebGIS开发引擎的发展历程: 内容来自公众号:Spatial Data 地图API分类 WebGIS系统通常都围绕地图进行内容表达,但并不是有地图就一定是WebGIS,所以下面要讨论下基于Web的地图API分类及应用场景。Web上的Map API主要分类&#xff…

不要盲目自学网络安全!学习顺序特别重要!

前言 一、什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防…

【QT 5 +Linux下+录屏软件使用+总结说明+使用录屏软件+简单软件使用+SimpleScreenRecorder+操作说明】

【【QT 5 Linux下录屏使用录屏软件简单软件使用SimpleScreenRecorder操作说明】】 1、前言2、实验环境3、录屏软件综述SimpleScreenRecorder:Kazam:OBS Studio (Open Broadcaster Software):VokoscreenNG:RecordMyDesktop&#xf…

Jmeter如何添加插件

一、前言 ​ 在我们的工作中,我们可以利用一些插件来帮助我们更好的进行性能测试。今天我们来介绍下Jmeter怎么添加插件? 二、插件管理器 ​ 首先我们需要下载插件管理器jar包 下载地址:Install :: JMeter-Plugins.org 然后我们将下载下来…

【unity小技巧】Unity音乐和音效管理器

最终效果 前言 在游戏开发中,音乐和音效的管理是一个重要的环节。好的音乐和合适的音效可以为游戏增添氛围并提升玩家的体验。为了更好地管理音乐和音效,我们可以使用一个专门的音乐和音效管理器。 在本文中,我将向大家介绍如何在Unity中创…

Android 文字垂直排列,文字向右旋转90度

public class VerticalTextView extends View {private final int ROTATION_ANGLE 90; // 旋转角度,用于将文本垂直排列private String text; // 要显示的文本private TextPaint textPaint; // 用于绘制文本的画笔private Rect textBounds;// 文本边界float x, y;/…

Spring Boot 3 集成 Thymeleaf

在现代的Web开发中,构建灵活、动态的用户界面是至关重要的。Spring Boot和Thymeleaf的结合为开发者提供了一种简单而强大的方式来创建动态的Web应用。本文将介绍如何在Spring Boot项目中集成Thymeleaf,并展示一些基本的使用方法。 什么是Thymeleaf&#…

spug发布问题汇总记录

问题导览 1. [vite]: Rollup failed to resolve import "element-plus" from "src/main.js". 项目框架简介 vue3viteelement-plus 解决方案 - 1. 配置淘宝镜像源:npm config set registry https://registry.npm.taobao.org/ - 2. npm inst…