当前位置: 首页 > news >正文

MySQL8主主搭建

-- mysql8 主主搭建
mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz

主1 : 192.168.2.160 
主2 : 192.168.2.161

--解压mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz为mysql8

-- 初始化mysql8 (略)

-- 参数192.168.2.160

[root@19cdg01 mysql]# ps -ef| grep mysql
root      1552  1433  0 01:00 pts/0    00:00:00 su - mysql
mysql     1554  1552  0 01:00 pts/0    00:00:00 -bash
mysql     1602  1554  0 01:00 pts/0    00:00:00 /bin/sh ./mysqld_safe --defaults-file=/mysql/mysql8/my.cnf --user=mysql
mysql     1877  1602  0 01:00 pts/0    00:00:19 /mysql/mysql8/bin/mysqld --defaults-file=/mysql/mysql8/my.cnf --basedir=/mysql/mysql8 --datadir=/mysql/mysql8/data --plugin-dir=/mysql/mysql8/lib/plugin --log-error=/mysql/mysql8/data/error.log --pid-file=19cdg01.pid --socket=/mysql/mysql8/mysql.sock --port=3306
mysql     2123  1554  0 01:04 pts/0    00:00:00 ./mysql -uroot -h127.0.0.1 -p
root      4317  4118  0 01:47 pts/2    00:00:00 grep --color=auto mysql
[root@19cdg01 mysql]# cat /mysql/mysql8/my.cnf
[mysqld]
server_id=3306
admin_port=33062
mysqlx_port=33060
socket=/mysql/mysql8/mysql.sock
mysqlx_socket=/mysql/mysql8/mysqlx.sock
log-error=/mysql/mysql8/data/error.log
port=3306
basedir=/mysql/mysql8
datadir=/mysql/mysql8/data
log_bin=binlog
log_bin_index=/mysql/mysql8/data/binlog.index
gtid_mode=on
enforce_gtid_consistency=true
auto-increment-increment = 2
auto-increment-offset = 1binlog-ignore-db = mysql,information_schema,performance_schema,sys[client]
port=3306
socket=/mysql/mysql/mysql88888888.sock
[mysql]
prompt="\u@db \R:\m:\s [\d]> "
[root@19cdg01 mysql]#

-- 参数192.168.2.161

[root@19cdg02 ~]# ps -ef| grep mysql
root      1583  1438  0 01:00 pts/0    00:00:00 /bin/sh ./mysqld_safe --defaults-file=/mysql/mysql8/my.cnf --user=mysql
mysql     1855  1583  0 01:00 pts/0    00:00:20 /mysql/mysql8/bin/mysqld --defaults-file=/mysql/mysql8/my.cnf --basedir=/mysql/mysql8 --datadir=/mysql/mysql8/data --plugin-dir=/mysql/mysql8/lib/plugin --user=mysql --log-error=/mysql/mysql8/data/error.log --pid-file=19cdg02.pid --socket=/mysql/mysql8/mysql.sock --port=3306
root      2105  1438  0 01:04 pts/0    00:00:00 ./mysql -uroot -h127.0.0.1 -p
root      4303  4277  0 01:48 pts/2    00:00:00 grep --color=auto mysql
[root@19cdg02 ~]# cat /mysql/mysql8/my.cnf
[mysqld]
server_id=33061
admin_port=33062
mysqlx_port=33060
socket=/mysql/mysql8/mysql.sock
mysqlx_socket=/mysql/mysql8/mysqlx.sock
log-error=/mysql/mysql8/data/error.log
port=3306
basedir=/mysql/mysql8
datadir=/mysql/mysql8/data
log_bin=binlog
log_bin_index=/mysql/mysql8/data/binlog.index
gtid_mode=on
enforce_gtid_consistency=true
auto-increment-increment = 2
auto-increment-offset = 2binlog-ignore-db = mysql,information_schema,performance_schema,sys[client]
port=3306
socket=/mysql/mysql8/mysql.sock
[mysql]
prompt="\u@db \R:\m:\s [\d]> "
[root@19cdg02 ~]#

-- 开启半同步 (8.0和5.7的半同步插件,不一样。安装5.7的插件也可以,log中有提示,即将被淘汰)

--INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
--SET GLOBAL rpl_semi_sync_master_enabled=ON;
install plugin rpl_semi_sync_source soname 'semisync_source.so';
set global rpl_semi_sync_source_enabled=1;

-- 启动数据库

./mysqld_safe --defaults-file=/mysql/mysql8/my.cnf --user=mysql
./mysqld_safe --defaults-file=/mysql/mysql8/my.cnf --user=mysql

-- 连接mysql

./mysql -uroot -h127.0.0.1 -p
./mysql -uroot -h127.0.0.1 -p

-- 创建复制账号rep1

CREATE USER 'rep1'@'192.168.2.%' IDENTIFIED WITH 'mysql_native_password' BY 'mysql';
grant replication slave on *.* to 'rep1'@'192.168.2.%';
flush privileges;

-- 设置复制.没有指定具体的log和position,使用参数MASTER_AUTO_POSITION = 1

CHANGE MASTER TO master_host='192.168.2.160', master_port=3306,master_user='rep1',master_password='mysql',MASTER_AUTO_POSITION = 1;
CHANGE MASTER TO master_host='192.168.2.161', master_port=3306,master_user='rep1',master_password='mysql',MASTER_AUTO_POSITION = 1;
start slave ;
show slave status ;

## 出现的问题及解决方法
1 因为刚开始没有设置binlog-ignore-db,分别在两个库上都建立和删除过账号,导致复制冲突。
1 节点1 上,log  drop user 'rep1'@'192.168.2.%'失败,执行事务'94c47d50-a0a1-11ee-86c9-000c299429f9:5'失败

2023-12-23T06:00:49.431587Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /mysql/mysql8/mysqlx.sock
2023-12-23T06:00:49.456284Z 10 [ERROR] [MY-010584] [Repl] Replica SQL for channel '': Worker 1 failed executing transaction '94c47d50-a0a1-11ee-86c9-000c299429f9:5' at source log binlog.000004, end_log_pos 392; Error 'Operation DROP USER failed for 'rep1'@'192.168.2.%'' on query. Default database: ''. Query: 'drop user 'rep1'@'192.168.2.%'', Error_code: MY-001396
2023-12-23T06:00:49.458896Z 6 [ERROR] [MY-010586] [Repl] Error running query, replica SQL thread aborted. Fix the problem, and restart the replica SQL thread with "START REPLICA". We stopped at log 'binlog.000004' position 197
2023-12-23T06:01:00.804824Z 14 [Warning] [MY-010055] [Server] IP address '192.168.2.161' could not be resolved: Name or service not known
2023-12-23T06:01:00.806701Z 14 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'
2023-12-23T06:01:49.442498Z 8 [System] [MY-014002] [Repl] Replica receiver thread for channel '': connected to source 'rep1@192.168.2.161:3306' with server_uuid=94c47d50-a0a1-11ee-86c9-000c299429f9, server_id=33061. Starting GTID-based replication.

2 节点2上,log  create user CREATE USER 'rep1'@'%' IDENTIFIED WITH 'mysql_native_password'  失败 ,执行事务'9fa8b4aa-a0a0-11ee-86d4-000c29a929d8:10'失败

023-12-23T06:01:00.641166Z 8 [System] [MY-014002] [Repl] Replica receiver thread for channel '': connected to source 'rep1@192.168.2.160:3306' with server_uuid=9fa8b4aa-a0a0-11ee-86d4-000c29a929d8, server_id=3306. Starting GTID-based replication.
2023-12-23T06:01:00.662057Z 9 [ERROR] [MY-010584] [Repl] Replica SQL for channel '': Worker 1 failed executing transaction '9fa8b4aa-a0a0-11ee-86d4-000c29a929d8:10' at source log binlog.000003, end_log_pos 1580; Error 'Operation CREATE USER failed for 'rep1'@'%'' on query. Default database: ''. Query: 'CREATE USER 'rep1'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*E74858DB86EBA20BC33D0AECAE8A8108C56B17FA'', Error_code: MY-001396
2023-12-23T06:01:00.664259Z 6 [ERROR] [MY-010586] [Repl] Error running query, replica SQL thread aborted. Fix the problem, and restart the replica SQL thread with "START REPLICA". We stopped at log 'binlog.000003' position 197
2023-12-23T06:01:49.333516Z 14 [Warning] [MY-010055] [Server] IP address '192.168.2.160' could not be resolved: Name or service not known
2023-12-23T06:01:49.334585Z 14 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'

1 节点1上跳过事务

stop slave;
select @@server_uuid;                                            <<< 查看当前服务器的uuid,可以不执行
set session gtid_next='94c47d50-a0a1-11ee-86c9-000c299429f9:5';  <<< 这个事务失败,设置下一个执行的事务为这个事务
begin;commit;                                                    <<< 执行一个空事务,欺骗库,执行过了上面的事务
set session gtid_next='AUTOMATIC';                               <<< 自动执行下一个事务 

2 节点2上跳过事务

stop slave;
select @@server_uuid;
set session gtid_next='9fa8b4aa-a0a0-11ee-86d4-000c29a929d8:10';
begin;commit;
set session gtid_next='AUTOMATIC';

另一种解决方法 (未测试)
在会话层面关闭sql log ,set session sql_log_bin = 0;
然后执行缺失的sql 。(sql 可以通过查看binlog的日志获取)

END

相关文章:

MySQL8主主搭建

-- mysql8 主主搭建 mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz 主1 &#xff1a; 192.168.2.160 主2 &#xff1a; 192.168.2.161 --解压mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz为mysql8 -- 初始化mysql8 &#xff08;略&#xff09; -- 参数192.168.2.160 [root…...

使用Pycharm一键将.ui文件生成.py文件配置教程、一键打开QTDesigner教程

2df3621a-7ffd-4f18-9735-b86464b83a5b 前言 我痛恨所有将白嫖归为理所应当的猪&#x1f416;。 教程 打开pycharm之后&#xff0c;依次点击File->Settings->Tools->External Tools&#xff0c;进入如下界面&#xff1a; 1、配置快捷打开Qt Designer 点击号&…...

React 路由跳转

1. push 与 replace 模式 默认情况下&#xff0c;开启的是 push 模式&#xff0c;也就是说&#xff0c;每次点击跳转&#xff0c;都会向栈中压入一个新的地址&#xff0c;在点击返回时&#xff0c;可以返回到上一个打开的地址&#xff0c; 就像上图一样&#xff0c;我们每次返…...

【MySQL】数据处理:从SQL批量删除报错到Python优雅解决

一、背景 MySQL数据库表中有一批重复的脏数据,为不影响正常业务,需要进行批量删除。 二、SQL批量删除 首先想到的是编写SQL语句来批量删除:删除身份证号为51****59且ID不为5的全部数据(保留ID为5的那一条数据) DELETE FROM test_table WHERE id IN ( SELECT i…...

Rust 软件测试

Rust 第18节 软件测试 测试已写的函数 在创建每一个lib crate时&#xff0c;rust都会自动生产一个测试 mod;名字为tests; tests mod 被属性 #[cfg(test)] 修饰&#xff0c;用于测试&#xff1b; 在mod 内&#xff0c;需要在函数头上加属性 #[test]进行修饰&#xff0c;让其变为…...

win11下配置visual studio 2022+PCL1.13.1

第一部分&#xff1a;visual studio2022 安装 vs官网网址如下&#xff1a;https://visualstudio.microsoft.com/zh-hans/vs/ 第一步&#xff1a;我们打开官网链接&#xff0c;按如下操作点击下载免费版本的exe文件 第二步&#xff1a;打开下载目录下的安装文件进行安装&#…...

智能优化算法应用:基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于法医调查算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.法医调查算法4.实验参数设定5.算法结果6.…...

【分享】4个方法打开PDF文件

PDF是很多人工作中经常使用的电子文档格式&#xff0c;但是可能有些刚接触的小伙伴不知道用什么工具来打开PDF文件&#xff0c;今天小编就来分享一下4种常用的工具。 1. 使用浏览器 只要有电脑基本都会安装一到两款浏览器&#xff0c;其实浏览器也可以用来打开PDF文件。 只需…...

React 调试

React 调试 console 调试 console.log console.info console.warn console.error console.time() & console.timeEnd() console.count() debugger调试 chrome断点调试 chrome条件断点 HTML节点复制 选中节点&#xff0c;使用 $0复制 JavaScript对象复制 copy…...

List 流的使用

摘要 本文将介绍在 Java 1.8 中对 List 进行流操作的使用方法。引入的 java.util.stream 包为开发者提供了一种更为便捷和强大的方式来处理集合数据。通过使用流&#xff0c;我们能够以声明性的方式进行集合操作&#xff0c;减少了样板代码&#xff0c;提高了代码的可读性和可…...

设计模式:单例模式(使用c++分别实现饿汉式单例、带双重检查锁定机制的懒汉式单例以及IoDH技术的单例)

单例模式 引言正文1. 饿汉式单例2. 带双重检查锁定机制的懒汉式单例3. IoDH技术的单例 结论优点饿汉式单例带双重检查锁定机制的懒汉式单例IoDH技术的单例 缺点饿汉式单例带双重检查锁定机制的懒汉式单例IoDH技术的单例 引言 在软件开发中&#xff0c;单例模式是一种很常用的设…...

[编程相关]正则表达式Regex语法

--目录-- 0. 前言1. 正则语法2. 正则搜索语法&#xff08;1&#xff09;字符集 Character_Classes&#xff08;2&#xff09;锚定符 Anchors&#xff08;3&#xff09;计数 Quantifiers&#xff08;4&#xff09;分组与索引 Group_And_Reference&#xff08;5&#xff09;周围 …...

axios实例配置和使用

一.vite项目中引入axios 1.1.安装axios pnpm add axios --save 二.配置axios实例 2.1实例配置 import axios from ‘axios’ import router from ‘/router’ const instance axios.create({ baseURL:“http://127.0.0.1:8080”, timeout:10*1000, //最长响应时间 }) instan…...

uni-app 工程目录结构介绍

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…...

YOLOv8改进 | 主干篇 | 利用SENetV2改进网络结构 (全网首发改进)

一、本文介绍 本文给大家带来的改进机制是SENetV2&#xff0c;其是2023.11月的最新机制(所以大家想要发论文的可以在上面下点功夫)&#xff0c;其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型&#xff0c;而是一个可以和现有的任何…...

TUP实现一对一聊天

package TCP; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /** * 发送消息线程 */ class Send ext…...

Kafka设计原理详解

Kafka核心总控制器 (Controller) 在Kafka集群中&#xff0c;通常会有一个或多个broker&#xff0c;其中一个会被选举为控制器 (Kafka Controller)&#xff0c;其主要职责是管理整个集群中所有分区和副本的状态。具体来说&#xff1a; 当某个分区的leader副本出现故障时&#…...

光耦继电器

光耦继电器(光电继电器) AQW282SX 282SZ 280SX 280SZ 284SX 284SZ 212S 212SX 21 2SZ 文章目录 光耦继电器(光电继电器)前言一、光耦继电器是什么二、光耦继电器的类型三、光电耦合器的应用总结前言 光耦继电器在工业控制、通讯、医疗设备、家电及汽车电子等领域得到广泛应…...

【C++练级之路】【Lv.5】动态内存管理(都2023年了,不会有人还不知道new吧?)

目录 一、C/C内存分布二、new和delete的使用方式2.1 C语言内存管理2.2 C内存管理2.2.1 new和delete操作内置类型2.2.2 new和delete操作自定义类型 三、new和delete的底层原理3.1 operator new与operator delete函数3.2 原理总结3.2.1 内置类型3.2.2 自定义类型 四、定位new表达…...

2016年第五届数学建模国际赛小美赛A题臭氧消耗预测解题全过程文档及程序

2016年第五届数学建模国际赛小美赛 A题 臭氧消耗预测 原题再现&#xff1a; 臭氧消耗包括自1970年代后期以来观察到的若干现象&#xff1a;地球平流层&#xff08;臭氧层&#xff09;臭氧总量稳步下降&#xff0c;以及地球极地附近平流层臭氧&#xff08;称为臭氧空洞&#x…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

2025季度云服务器排行榜

在全球云服务器市场&#xff0c;各厂商的排名和地位并非一成不变&#xff0c;而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势&#xff0c;对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析&#xff1a; 一、全球“三巨头”…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

React从基础入门到高级实战:React 实战项目 - 项目五:微前端与模块化架构

React 实战项目&#xff1a;微前端与模块化架构 欢迎来到 React 开发教程专栏 的第 30 篇&#xff01;在前 29 篇文章中&#xff0c;我们从 React 的基础概念逐步深入到高级技巧&#xff0c;涵盖了组件设计、状态管理、路由配置、性能优化和企业级应用等核心内容。这一次&…...