mysql 表备份 遇到的问题 【全网最全】
目录
省流:
正文:
1、报错
2、原因
3、解决方法
方法一:关闭 ENFORCE_GTID_CONSISTENCY (不推荐):
方法二(推荐):
4、开启关闭GTID
省流:
不推荐如下写法:
create table ... as select * from ...;
create table t1_old as select * from t1;
推荐:
-- 分成两步来写
create table t1_old like t1;
insert into t1_old select * from t1;
正文:
1、报错
在执行sql:create table 表A as select * from 表B时,报错:
Statement violates GTID consistency: CREATE TABLE ... SELECT.
2、原因
MySQL5.7.6版本之后, enforce_gtid_consistency=true 功能导致,MySQL只允许能够保障事务安全并且能够被日志记录的SQL语句被执行,像create table … select 和 create temporarytable语句,以及同时更新事务表和非事务表的SQL语句或事务都不允许执行。
3、解决方法
方法一:关闭 ENFORCE_GTID_CONSISTENCY (不推荐):
这个方法是网上很多文章介绍的方法。但如果是用来备份表,不推荐此方法,因为会遇到很多和事务有关问题。 详情见下面的参考文章。
我自己遇到的问题是:master主库备份,但slave从库没有备份数据(只是一张空表)。导致服务查询数据的时候查不到。
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'OFF';
直接执行上面这条命令可能会报错:
GTID_MODE = ON requires ENFORCE_GTID_CONSISTENCY = ON.
意思是说要先关闭 GTID_MODE,再关闭 ENFORCE_GTID_CONSISTENCY。
SET GLOBAL GTID_MODE = 'OFF';
但是直接关闭GTID_MODE会报错:
The value of @@GLOBAL.GTID_MODE can only be changed one step at a time:
OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON.
Also note that this value must be stepped up or down simultaneously on all servers.
See the Manual for instructions.
这意思是说,不能直接设置OFF,要如下执行:
SET GLOBAL GTID_MODE = 'ON_PERMISSIVE';
SET GLOBAL GTID_MODE = 'OFF_PERMISSIVE';
SET GLOBAL GTID_MODE = 'OFF';
这样就关闭了 GTID_MODE,然后再关闭 ENFORCE_GTID_CONSISTENCY。
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'OFF';
详情见 4、开启关闭GTID
方法二(推荐):
将创建表和复制数据分成两步执行:
create table t1_old like t1;
insert into t1_old select * from t1;
4、开启关闭GTID
(1)必须是5.7.6版本以上的mysql
(2)GTID状态为OFF
2、开启步骤:
(1):SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'WARN';
(2):SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'ON';
(3):SET GLOBAL GTID_MODE = 'OFF_PERMISSIVE';
(4):SET GLOBAL GTID_MODE = 'ON_PERMISSIVE';
(5):SET GLOBAL GTID_MODE = 'ON';
3、要永久启用,在my.cnf配置文件中添加参数:
gtid-mode=ON
enforce-gtid-consistency
在线关闭步骤:
1、要求:
(1)必须是5.7.6版本以上的mysql
(2)GTID状态为OFF
2、关闭步骤:
(1):stop slave;
(2):SET GLOBAL GTID_MODE = 'ON_PERMISSIVE';
(3):SET GLOBAL GTID_MODE = 'OFF_PERMISSIVE';
(4):SET GLOBAL GTID_MODE = 'OFF';
注:
每次开启和关闭时,都是这样一个过程:
打开-->过度模式-->完全打开
停止-->过度模式-->完全关闭
参考:
为什么要避免使用“CREATE TABLE AS SELECT”语句
mysql在线开启或禁用GTID模式
技术分享 | MySQL 在线开启 GTID 的每个阶段是要做什么 - 知乎
=======================分割线=========================
文章到此已经结束,以下是紫薯布丁
SET GLOBAL GTID_MODE = 'ON_PERMISSIVE';
SET GLOBAL GTID_MODE = 'OFF_PERMISSIVE';
SET GLOBAL GTID_MODE = 'OFF';
SET GLOBAL ENFORCE_GTID_CONSISTENCY = 'OFF';
The value of @@GLOBAL.GTID_MODE can only be changed one step at a time:
OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON.
Also note that this value must be stepped up or down simultaneously on all servers.
See the Manual for instructions.
GTID_MODE = ON requires ENFORCE_GTID_CONSISTENCY = ON.
-- 分成两步来写
create table t1_old like t1;
insert into t1_old select * from t1;
create table ... as select * from ...;
create table t1_old as select * from t1;
相关文章:
mysql 表备份 遇到的问题 【全网最全】
目录 省流: 正文: 1、报错 2、原因 3、解决方法 方法一:关闭 ENFORCE_GTID_CONSISTENCY (不推荐): 方法二(推荐): 4、开启关闭GTID 省流: 不推荐如…...
11.添加侧边栏,并导入数据
修改CommonAside的代码: <template><div><el-menu default-active"1-4-1" class"el-menu-vertical-demo" open"handleOpen" close"handleClose":collapse"isCollapse"><!--<el-menu-it…...
ThinkPHP 通用的API格式封装
ThinkPHP 通用的API格式封装 1.创建status.php 用于设置通用的状态码返回枚举类2.将API返回格式统一封装3.重写BaseController中的__call方法4.在控制器下面新建Error控制器,然后添加__call方法 1.创建status.php 用于设置通用的状态码返回枚举类 <?phpreturn[…...
自己动手写数据库:实现一个小型 SQL 解释器(下)
本节我们完成 SQL 解释器的最后一部分,它涉及到数据的删除和更改,首先我们看删除语句的解析。我们先看 delete 对应的语法: Delete -> DELETE FROM ID (where Predicate)?从语法规则可以看出,delete 语句必须以关键字 DELETE…...
2023年信息安全管理与评估任务书模块一网络平台搭建与设备安全防护
全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 任务书 模块一 网络平台搭建与设备安全防护 比赛时间 本阶段比赛时长为180分钟。 赛项信息 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 网络平台搭建与设备安全防护 任务1 网络平台搭建 9:00- 12:00 …...
JS -RSA 明文加密--用户密码加密
1 配置文件引入 加密包 package.json "jsencrypt": "^3.0.0-rc.1",2 加密公钥配置 import { JSEncrypt } from jsencrypt import request from "/utils/request";const RSA_PUBLIC_KEY "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJVol0cJ…...
clickhouse中replacingMergeTree
ReplacingMergeTree是在MergeTree上添加了去重的功能,但是这个功能不可控,合并是一个后台的操作,除非手动触发,不然无法控制,并且它会删除具有相同(区内)主键的重复项。 特点: 1,去重时机不定&a…...
pdf怎么转换成word?
随着数字化时代的到来,PDF(Portable Document Format)已成为最受欢迎的文档格式之一,因其在各种设备上的可视性和稳定性而备受推崇。然而在某些情况下,将PDF转换为Word文档可能是必要的,这使得编辑、修改和重新格式化文本变得更加…...
汇编攻城记-Cortex-M3指令集
类型 指令 全称 功能 内存访问 LDR Load register 加载字到寄存器 LDRB 加载字节到寄存器 LDRH 加载半字到寄存器 LDRSH 加载半字到寄存器,再带符号扩展到32位 LDRD 从连续的地址空间加载双字(64位整数)到…...
大语言模型之五 谷歌Gemini
近十年来谷歌引领着人工智能方向的发展,从TensorFlow到TPU再到Transformer,都是谷歌在引领着,然而,在大语言模型上,却被ChatGPT(OpenAI)抢了风头,并且知道GPT-4(OpenAI&a…...
使用selenium实现对页面元素的抓取
一、背景介绍 工作中有个需求是需要对某个页面进行监控,但由于要监控页面数据是异步加载的,因此很难从状态码和返回结果层面进行校验。于是乎想到了通过判断页面元素是否存在且显示内容是否正确来达到此目标。调研了一下发现selenium可以实现对这种动态…...
大数据课程K12——Spark的MLlib概述
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的MLlib概念; ⚪ 掌握Spark的MLlib基本数据模型; ⚪ 掌握Spark的MLlib统计量基础; 一、Spark MLlib介绍 1. 概述 MLlib是Apache Spark的可迭代机器学习库。 2. 易于使用 …...
流程制造智能工厂总体架构及建设路线规划方案PPT
本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除,更多浏览公众号:智慧方案文库 数字孪生智能制造(智改数转)数字化架构设计及应用..水泥智能工厂解决方案.pptx智慧制造规划设计解决方案.pptx智能工厂落…...
网络有源号角(50W-100W)社区小区广播 工地语音播报,隧道广播,钢铁广播广播系统
网络有源号角(50W-100W)社区小区广播 工地语音播报,隧道广播,钢铁广播广播系统 SV-7042T 50W网络有源号角 SV-7042T是深圳锐科达电子有限公司的一款壁挂式网络有源号角,具有10/100M以太网接口,可将网络音…...
【Kali Linux高级渗透测试】深入剖析Kali Linux:高级渗透测试技术与实践
📕作者简介:热爱跑步的恒川,致力于C/C、Java、Python等多编程语言,热爱跑步,喜爱音乐的一位博主。 📗本文收录于恒川的日常汇报系列,大家有兴趣的可以看一看 📘相关专栏C语言初阶、C…...
DHCP中继实验
文章目录 一、实验背景与目的二、实验拓扑三、实验需求四、实验解法1. 配置IP地址2.配置R1为DHCP服务器,能够跨网段为192.168.2.0/24网段自动分配IP地址3. 在PC3上Ping 192.168.1.1,确认可以Ping通 摘要: 本实验旨在通过配置DHCP中继实现跨网…...
C++进阶之多态
多态 多态的概念多态的定义及实现1.多态的构成条件2.虚函数3.虚函数的重写4.虚函数重写的两个例外5.C11 override 和 final6.重载、覆盖(重写)、隐藏(重定义)的对比 抽象类1.概念2.接口继承和实现继承 多态的原理1.虚函数表2.多态的原理3.动态绑定与静态绑定 单继承和多继承关系…...
QtCreator中三种不同编译版本 debug、release、profile 的区别
debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值。会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉。 release发布模式,编译后的可执…...
golang中map赋值
众所周知,golang中map是一个指针,既然是一个指针,那么参数传递、赋值应该都是指针传递,而下面的例子也印证了我的想法 package mainimport "fmt"func test_map2(m map[string]string) {fmt.Printf("inner: %v, %p…...
myspl使用指南
mysql数据库 使用命令行工具连接数据库 mysql -h -u 用户名 -p -u表示后面是用户名-p表示后面是密码-h表示后面是主机名,登录当前设备可省略。 如我们要登录本机用户名为root,密码为123456的账户: mysql -u root -p按回车,然后…...
实战案例|向导布局一出手,企业流程表单直接专业满级
实战案例|向导布局一出手,企业流程表单直接专业满级 在企业系统里,有一类表单天生就必须按步骤走:用户注册、企业认证、项目申报、入职办理、采购申请、合同签署…这类表单一旦用 Tab 或折叠面板,就会显得不规范、不正…...
Unity串口通信实战:线程安全与跨平台解决方案
1. 这不是“调个串口”那么简单:Unity里做串口通信的真实战场很多人第一次在Unity里尝试串口通信,是被一个硬件交互需求推着走的——比如要读取温湿度传感器数据、控制步进电机转速、或者让Arduino小车响应Unity场景里的按钮点击。他们搜到“Unity 串口 …...
仿冒 Word 钓鱼攻击中可信远程工具滥用机理与企业防御研究
摘要 2026 年 5 月安全事件监测显示,以仿冒 Word 在线页面为诱饵、滥用合法远程管理工具实现内网渗透的新型钓鱼攻击,正成为企业安全防护的典型盲区。该攻击以 Outlook 钓鱼邮件为入口,诱导用户访问伪造的 Word Online/OneDrive 预览页面&…...
ToolsFx密码学工具箱:一站式解决你的数据安全与编码转换需求
ToolsFx密码学工具箱:一站式解决你的数据安全与编码转换需求 【免费下载链接】ToolsFx 跨平台密码学工具箱。包含编解码,编码转换,加解密, 哈希,MAC,签名,大数运算,压缩,…...
如何快速实现微信小游戏开发:weapp-adapter的完整实践指南
如何快速实现微信小游戏开发:weapp-adapter的完整实践指南 【免费下载链接】weapp-adapter weapp-adapter of Wechat Tiny Game in ES6 项目地址: https://gitcode.com/gh_mirrors/we/weapp-adapter 对于熟悉Web前端开发的程序员来说,微信小游戏开…...
3个妙招突破百度网盘限速:baidu-wangpan-parse终极解析指南
3个妙招突破百度网盘限速:baidu-wangpan-parse终极解析指南 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 你是否经历过这样的场景?急着下载一份重要的…...
从游戏存档黑盒到透明编辑:uesave工具实战指南
从游戏存档黑盒到透明编辑:uesave工具实战指南 【免费下载链接】uesave Rust library and CLI to read and write Unreal Engine save files 项目地址: https://gitcode.com/gh_mirrors/ue/uesave 你是否曾经面对游戏存档文件感到束手无策?那些神…...
Python金融数据引擎:重构通达信数据获取的技术范式
Python金融数据引擎:重构通达信数据获取的技术范式 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在量化投资和金融数据分析领域,数据获取一直是开发者面临的首要挑战。传…...
B-Parameter小模型:精度、速度与成本的帕累托最优
1. 小模型正在悄悄改写游戏规则:为什么10B参数的模型能干翻100B巨兽?最近在几个技术团队做模型选型咨询,几乎每场讨论都会有人抛出这个问题:“我们业务场景明明很垂直,推理延迟要求严苛,GPU显存还卡在24G&a…...
轻松掌握华硕笔记本性能控制:轻量级替代工具的使用方法
轻松掌握华硕笔记本性能控制:轻量级替代工具的使用方法 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, E…...
