数据库主从同步

目录

    • 一、准备工作
      • 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.

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

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

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

相关文章

Coggle 30 Days of ML (23年7月)任务二:数据可视化

Coggle 30 Days of ML (23年7月)任务二:数据可视化 任务二:对数据集字符进行可视化,统计标签和字符分布 说明:在这个任务中,需要使用Pandas库对数据集的字符进行可视化,并统计数据集中的标签和…

深入了解C语言中scanf()函数的用法

目录 正文 一、基本用法 二、格式化字符串 三、多个输入值 四、错误处理 五、总结 正文 在C语言中,scanf()函数是一个非常有用的输入函数,它允许我们从用户那里获取输入,并将输入存储到指定的变量中。本文将详细介绍scanf()函数的使用方…

基于单片机停车场刷卡收费的设计与实现

功能介绍 以51单片机作为主控系统;通过液晶显示当前时间,车位、剩余车位、时间等信息;进电机正反转表示开关门;按键可以设置当前时间/单价/分钟;RC522射频卡识别,当刷卡后模拟汽车驶入,开始收费…

驱动开发-day10

驱动代码&#xff1a; #include <linux/cdev.h> #include <linux/device.h> #include <linux/fs.h> #include <linux/gpio.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/mod_devicetable.h> #include …

OpenCV 入门教程:轮廓特征和轮廓匹配

OpenCV 入门教程&#xff1a;轮廓特征和轮廓匹配 导语一、轮廓特征二、轮廓匹配三、示例应用3.1 目标识别3.2 形状分析 总结 导语 轮廓特征和轮廓匹配是图像处理中用于描述和比较轮廓的技术。通过提取轮廓的形状、面积、周长等特征&#xff0c;并进行比较和匹配&#xff0c;我…

Python+Requests+Excel接口测试实战

1、EXCEL文件接口保存方式&#xff0c;如图。 2、然后就是读取EXCEL文件中的数据方法&#xff0c;如下&#xff1a; 1 import xlrd2 3 4 class readExcel(object):5 def __init__(self, path):6 self.path path7 8 property9 def getSheet(self): 10 …

flutter开发实战-Running Gradle task ‘assembleDebug‘ 的解决方法

flutter开发实战-Running Gradle task ‘assembleDebug‘ 的解决方法 使用Android studio经常出现Running Gradle task ‘assembleDebug‘问题&#xff0c;记录一下解决方法。 一、在Android目录下更改build.gradle 将repositories中的google(), mavenCentral() repositori…

从钢铁行业数字化管控平台的智能进化,看超自动化能力边界

文/王吉伟 钢铁行业的数字化转型&#xff0c;历来都是值得探讨的热点话题。 2022年&#xff0c;我国粗钢产量10.13亿吨&#xff0c;占据了全球钢铁供给市场的半壁江山。 这组数据可谓非常抢眼&#xff0c;但仍旧难掩诸多企业的各种经营问题。 钢铁生产过程工序众多&#xf…

计算机网络-网络层上篇

目录 一、网络层概述 二、网络层提供的两种服务 &#xff08;一&#xff09;面向连接的虚电路服务 &#xff08;二&#xff09;无连接的数据报服务 &#xff08;三&#xff09;虚电路服务与数据报服务的比较 三、IPv4地址及其应用 &#xff08;一&#xff09;IPv4地址概…

python中的生成器(generator)

一、生成器 生成器是 Python 中非常有用的一种数据类型&#xff0c;它可以让你在 Python 中更加高效地处理大量数据。生成器可以让你一次生成一个值&#xff0c;而不是一次生成一个序列&#xff0c;这样可以节省内存并提高性能 二、实现generator的两种方式 python中的gener…

SuperMap iClient3D for Cesium最短路径分析

作者&#xff1a;Mei 目录 前言实现思路实现步骤1、构建二维网络数据集1.1拓扑检查1.2线拓扑数据集处理1.3构建二维网络数据集 2、发布网络分析服务3、实现代码 前言 在交通、消防业务场景中&#xff0c;如果某地发生火灾或者交通事故&#xff0c;需要快速规划出最短抢救路线&a…

flask计算pin码

目录 Flask计算pin码 <1> 概念 什么是pin码&#xff1f; pin码生成条件&#xff1f; 读取相关文件绕过过滤 <2> 源码分析 werkzeug 1.0.x版本 计算PIN的源码 werkzeug 2.0.x版本 计算PIN的源码 <3> 计算生成pin的脚本 CTF中 flask-pin的应用 <1…

volatile原理剖析和实例讲解

一、是什么 volatile是Java的一个关键字&#xff0c;是Java提供的一种轻量级的同步机制&#xff0c; 二、能做什么 保证了不同线程对这个变量进行操作时的可见性&#xff0c;有序性。 三、可见性 可见性主要是指一个线程修改了共享变量的值&#xff0c;另一个线程可以看见…

RPC 框架架构设计

RPC 框架架构设计 RPC 又称远程过程调用&#xff08;Remote Procedure Call&#xff09;&#xff0c;用于解决分布式系统中服务之间的调用问题。通俗地讲&#xff0c;就是开发者能够像调用本地方法一样调用远程的服务。下面我们通过一幅图来说说 RPC 框架的基本架构。 RPC 框架…

Python_与redis数据库交互

目录 redis模块的使用 连接方式 连接池 操作 设置值 获取值 管道 事务 源码等资料获取方法 python可以使用redis模块来跟redis交互 redis模块的使用 安装模块: pip3 install redis 导入模块&#xff1a;import redis 连接方式 严格连接模式&#xff1a;rredis.St…

40.RocketMQ之高频面试题大全

消息中间件如何选型 RabbitMQ erlang开发&#xff0c;对消息堆积的支持并不好&#xff0c;当大量消息积压的时候&#xff0c;会导致 RabbitMQ 的性能急剧下降。每秒钟可以处理几万到十几万条消息。 RocketMQ java开发&#xff0c;面向互联网集群化功能丰富&#xff0c;对在线业…

Win10安全中心怎么关闭?Win10安全中心关闭方法

Win10安全中心怎么关闭&#xff1f;关闭Win10的安全中心可以帮助用户自定义系统的安全和防护设置&#xff0c;但有些用户不知道怎么操作才能关闭安全中心&#xff0c;首先用户需要打开Win10电脑的设置选项&#xff0c;接着打开安全中心&#xff0c;然后关掉安全中心的实时保护、…

SQL力扣练习(六)

目录 1. 部门工资前三高的所有员工(185) 题解一(dense_rank()窗口函数&#xff09; 题解二&#xff08;自定义函数&#xff09; 2.删除重复的电子邮箱(196) 题解一 题解二&#xff08;官方解析&#xff09; 3.上升的温度(197) 解法一&#xff08;DATEDIFF()&#xff09;…

非主流币波段策略

数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学&#xff0c;点击下方链接报名&#xff1a; 量化投资速成营&#xff08;入门课程&#xff09; Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…

探究Vue源码:mustache模板引擎(5) 对比rollup与webpack,在本地搭建webpack环境

好 从本文开始 我们就来手写一下mustache这个库 他是模板引擎的一个祖先 将模板字符串编译成一个dom字符串 就是它的思想&#xff0c;这也是一个具有跨时代意义的思想 这里的话 我们还是搭一个 webpack 的项目环境 这里值得一提的是 mustache 他官方是通过rollup来进行打包的 …