数据库主从同步

news2024/11/25 23:22:49

目录

    • 一、准备工作
      • 1.1 安装或关闭以下服务
      • 1.2 本次安装环境
    • 2、主数据库配置
      • 2.1主数据库配置
      • 2.2创建用户
      • 2.3查看信息
    • 三、从主数据库配置
      • 3.1从数据库配置
      • 3.2连接主服务器
      • 3.3测试
    • 4、其他
      • 4.1连接完毕后发现Slave_IO_Running值异常,
      • 4.2报错`Error connecting to source 'test@192.168.1.10:3306'. This was attempt 2/86400, with a delay of 60 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.`
      • 4.3报错`Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ANONYMOUS' at source log mysql-bin.000003, end_log_pos 1789. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.`


一、准备工作

1.1 安装或关闭以下服务

关闭防火墙等

linux时间校对

mysql8安装

mysql增删改查

1.2 本次安装环境

配置信息说明
linux系统版本CentOS7.4
内核ml-3.10.0
mysql版本8.0.33
主mysqlIP地址192.168.1.10
从mysqlIP地址192.168.1.11

2、主数据库配置

完成mysql8安装并登录数据库,完成主数据库增加

2.1主数据库配置

vim /etc/my.cnf
[mysqld]
server-id=1                #server-id表示主库的唯一标识
log-bin=mysql-bin      #log-bin表示开启二进制日志
binlog-do-db=testdb   #binlog-do-db表示需要同步的数据库名
  • server-id 设置主服务器的唯一标识
  • log_bin 指定二进制日志的名称
  • binlog-do-db 需要同步的数据库名。
    重启数据库
systemctl restart  mysqld

2.2创建用户

创建用户test并指定该地址在192.168.1.11上登录,授予REPLICATION SLAVE权限

mysql> CREATE USER 'test'@'192.168.1.11' IDENTIFIED BY 'Yrdy123!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'test'@'192.168.1.11';
  • REPLICATION SLAVE权限 允许用户作为复制从服务器连接到主服务器并执行复制操作

2.3查看信息

查看主数据库服务器的二进制日志文件和位置信息
mysql> show master status;
±--------------------------±------------±-------------±--------------------------------±------------------------+
| File      | Position| Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±--------------------------±------------±-------------±--------------------------------±------------------------+
| mysql-bin.000001|718  | testdb     |         |         |
±--------------------------±------------±-------------±--------------------------------±------------------------+

  • File 当前正在写入二进制日志的日志文件名。
  • Position 当前正在写入二进制日志的位置。

三、从主数据库配置

3.1从数据库配置

vim /etc/my.cnf
[mysqld]
server-id=2
log-bin=mysql-bin
binlog-do-db=testdb

重启数据库

systemctl restart  mysqld

创建数据库

mysql> CREATE DATABASE testdb;          #从数据库需要先创建与主数据库相同的数据库

3.2连接主服务器

连接主服务器

mysql> change master to master_host='192.168.1.10', master_user='test', master_password='Yrdy123!', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=718;
  • MASTER_HOST = ‘主服务器IP地址’,
  • MASTER_PORT = 主服务器端口号,
  • MASTER_USER = ‘拥有主从复制权限的账号名称’,
  • MASTER_PASSWORD = ‘拥有主从复制权限的账号密码’,
  • MASTER_LOG_FILE = ‘主服务器上的File值’,
  • MASTER_LOG_POS = 主服务器上的Position值;

启动从服务器与主服务器的同步

mysql> start slave;

查看服务器的状态

mysql> show slave status\G;

在这里插入图片描述

  • 确保Slave_IO_Running 和 Slave_SQL_Running 值都为 Yes,表示主从同步已经成功配置。

3.3测试

在主数据表中新增列

mysql> ALTER TABLE 第99小学
ADD COLUMN 备注信息 VARCHAR(100)

从数据库查看是否新增成功

mysql> DESC 第99小学; 

4、其他

4.1连接完毕后发现Slave_IO_Running值异常,

在这里插入图片描述
解决
发现设置连接主服务器的IP地址写错,关闭主从复制,在重新连接

停止 MySQL 的主从复制,在主数据库上先输入
STOP SLAVE;
主数据库上重置主从同步配置
RESET SLAVE;
从数据库上重置主从同步配置
RESET SLAVE;

重新连接主服务器(注意重新查看主服务器Position值)

mysql> change master to master_host='192.168.1.10', master_user='test', master_password='Yrdy123!', master_port=3306, master_log_file='mysql-bin.000001', master_log_pos=718;

4.2报错Error connecting to source 'test@192.168.1.10:3306'. This was attempt 2/86400, with a delay of 60 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

  • “default_authentication_plugin=mysql_native_password” 是 MySQL 数据库中的一个配置选项,它指定了默认的身份验证插件。在 MySQL 8.0 之前的版本中,默认的身份验证插件是 “mysql_native_password”。这个插件使用基于密码的身份验证,将用户提供的密码与存储在数据库中的加密密码进行比较来验证用户身份。
    然而,在 MySQL 8.0 版本中,推荐使用更安全的身份验证插件 “caching_sha2_password”。因此,默认的身份验证插件已从 “mysql_native_password” 更改为 “caching_sha2_password”。
    解决
vim /etc/my.cnf
[mysqld]
default_authentication_plugin=mysql_native_password

修改完成后重启服务

systemctl restart  mysqld

进入数据库删除已创建用户并在重新创建一次

mysql> DROP USER 'test'@'192.168.1.11';           #删除用户
mysql> CREATE USER 'test'@'192.168.1.11' IDENTIFIED BY 'Yrdy123!';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'test'@'192.168.1.11';

再次查看主数据库的状态,File 和 Position数值可能会变化,其他在按上面进行一次操作

mysql> show master status; 

4.3报错Coordinator stopped because there were error(s) in the worker(s). The most recent failure being: Worker 1 failed executing transaction 'ANONYMOUS' at source log mysql-bin.000003, end_log_pos 1789. See error log and/or performance_schema.replication_applier_status_by_worker table for more details about this failure or others, if any.

解决
关闭主从同步后,在从数据库创建数据库,需要和主数据库保持一致。创建完毕后再次连接主服务器正常

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第一阶段-第七章 Python的函数进阶

目录 一、函数多返回值  1.学习目标  2.多个返回值的语法  3.本节的代码演示 二、函数多种传参方式  1.学习目标  2.函数参数种类(位置参数、关键字参数、缺省参数、不定长参数(位置传递、关键字传递))  3.本节的代码…

一条命令解决端口占用,开启mysql

注:最后有面试挑战,看看自己掌握了吗 文章目录 端口占用开启mysql 端口占用 如果发现 8080 端口被占用可以使用命令 sudo lsof -t -i:8080 | sudo xargs kill -9 查找并杀死相应的进程。 开启mysql 打开命令提示符或终端。如果您已经安装了MySQL&…

【雕爷学编程】Arduino动手做(161)---16路PWM舵机驱动板PCA9685

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

HTML语法

文章目录 前言HTML 文件基本结构常见标签标签种类特殊符号图片链接a链接 双标签链接 列表表格 &#xff1a;表单多行文本域: 前言 HTML是有标签组成的 <body>hello</body>大部分标签成对出现. 为开始标签, 为结束标签. 少数标签只有开始标签, 称为 “单标签”. 开…

第二章:类和对象(中)

系列文章目录 文章目录 系列文章目录前言类的6个默认成员函数构造函数概念特性 析构函数概念特性 拷贝构造函数概念特征 赋值运算符重载运算符重载赋值运算符重载赋值运算符重载格式赋值运算符只能重载成类的成员函数不能重载成全局函数用户没有显式实现时&#xff0c;编译器会…

【物理】模拟粒子在电场和磁场中的轨迹研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Mysql的分库分表策略

一.水平切分 水平切分又称为 Sharding 策略&#xff0c;它是将同一个表中的记录拆分到多个结构相同的表中。 当一个表的数据不断增多时&#xff0c;Sharding 是必然的选择&#xff0c;它可以将数据分布到集群的不同节点上&#xff0c;从而缓存单个数据库的压力。 Sharding 策…

后端(五):JVM

目录 JVM 中的内存区域划分 JVM 的类加载机制 1. 加载 2. 验证 3. 准备 4. 解析 5. 初始化 JVM 中的垃圾回收策略 找&#xff0c;确认垃圾 1. 引用计数 2. 可达行分析 释放”垃圾“对象 1. 标记清除 2. 复制算法 3. 标记整理 分代算法 JVM也就是我们俗称的八股…

Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面

Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面 虽然说IE6除了部分要求苛刻的需求以外已经被可以不考虑了&#xff0c;但是WIN7自带的浏览器IE8还是需要支持的。 本文这个方法主要的优点&#xff0c;个人觉得就是准备少&#xff0c;不需要上网寻找大量的图片做素材&…

2003-Can‘t connect to Mysql server on ‘xxx‘ (10060 “Unknown error“)

Navicat连接 阿里云 服务器MySQL5.7数据库报错 解决办法&#xff1a; 进入数据库执行以下sql 1.允许root用户远程连接 GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY 数据库密码 WITH GRANT OPTION; 2.刷新权限 FLUSH PRIVILEGES;3.执行quit退出数据库 quit; 4.…

PVE虚拟化平台之安装Ubuntu Desktop系统

PVE虚拟化平台之安装Ubuntu Desktop系统 一、Ubuntu介绍1.1 Ubuntu简介1.2 Ubuntu版本1.3 ubuntu命名规则 二、上传镜像到PVE2.1 检查PVE环境2.2 上传镜像到PVE 三、新建虚拟机3.1 设置虚拟机名称3.2 操作系统设置3.3 系统设置3.4 磁盘设置3.5 cpu设置3.6 内存设置3.7 网络设置…

sprinboot摄影跟拍预定管理系统

摄影跟拍预定管理方面的任务繁琐,以至于每年都在摄影跟拍预定管理这方面投入较多的精力却效果甚微,摄影跟拍预定管理系统的目标就是为了能够缓解摄影跟拍预定管理工作方面面临的压力,让摄影跟拍预定管理方面的工作变得更加高效准确。 本项目在开发和设计过程中涉及到原理和技术…

怎么给pdf文件加密?pdf文档如何加密

在数字化时代&#xff0c;保护个人和机密信息的重要性越来越受到关注。PDF&#xff08;Portable Document Format&#xff09;是一种广泛使用的文件格式&#xff0c;用于共享和存储各种类型的文档。然而&#xff0c;由于其易于编辑和复制的特性&#xff0c;保护PDF文件中的敏感…

springboot书籍学习平台

本项目在开发和设计过程中涉及到原理和技术有: B/S、java技术和MySQL数据库等等.

送呆萌的她一个皮卡丘(Python实现)

目录 1 呆萌的她 2 思维需要革新 3 送她的一个漂亮皮卡丘 4 Python完整代码奉上 1 呆萌的她 又是一季春风暖阳下, 你是一湾一湾羞涩的春波。 静静感受着&#xff0c; 你垂下的枝膊 在我的脸上轻轻抚摸 一对春燕,低低掠过 涟漪乍起&#xff0c;是你浅浅的笑窝...... 2 思维需…

[Error] invalid preprocessing directive #inclued问题解决

错误代码 报错内容 [Error] invalid preprocessing directive #inclued 错误原因 #inclued写错了应该写成#include

elementUI 非表单格式的校验

在普通表单中对输入框、选择框都有校验案例。 但是在自定义非空中如何进行校验官网并没有说明 关键代码 clearValidate 方法清除校验 this.$refs.formValue.clearValidate(signinimg) 使用案例 <template><div class"stylebg"><Tabs icons"el-…

[QT编程系列-6]:C++图形用户界面编程,QT框架快速入门培训 - 3- QT窗体设计 - 自定义菜单栏

目录 3. QT窗体设计 3.1 自定义菜单 3.1.1 设计目标​编辑 3.1.2 创建过程​编辑 3. QT窗体设计 3.1 自定义菜单 3.1.1 设计目标 3.1.2 创建过程 在Qt中&#xff0c;Windows窗口和Widget窗口是两种不同的窗口类型&#xff0c;它们在创建方式、功能和用途上有所区别。 创建…

【React】- 组件生命周期连续渲染两次问题

最近在整理生命周期相关的知识内容&#xff0c;然后发现一个奇怪的现象&#xff0c;即组件的生命周期会运行2次&#xff01;经过确认不是代码问题&#xff0c;于是开始找度娘&#xff0c;终于找到其原因-React中的严格模式&#xff0c;在这里记录一下 一、问题重现 如图所示&a…

速通matplotlib库

速通matplotlib库 前言 ​ 最近在复习之前学习过的知识点&#xff0c;因此想到把学过的总结一下&#xff0c;方便后面再次复习&#xff0c;所以有了这个系列。 说明 ​ 由于标题写的是“速通”&#xff0c;因此我的想法是可以让大家看完这篇文章&#xff0c;可以上手matplotlib…