MySQL备份表报错ERROR 1786

IT科技类资讯2025-11-05 11:44:03782

Mysql单表备份有很多方式,备报错对于数据量比较大的份表表,可以使用mysqldump

小表通常使用如下语句就行了。备报错

复制create table A as select * from B1.

在一次备份中出现如下错误。份表

复制mysql> create tables deptmember_bak as select * from deptmember;ERROR 1064 (42000): You have 备报错an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near tables deptmember_bak as select * from deptmember at line 11.2.

查询官方资料,原因是份表MySQL 5.6.7及更高的版本,开启了enforce_gtid_consistency=true 功能导致的备报错,网站模板MySQL官方解释说当启用 enforce_gtid_consistency 功能的份表时候,MySQL只允许能够保障事务安全,备报错并且能够被日志记录的份表SQL语句被执行,像create table … select 和 create temporarytable语句,备报错以及同时更新事务表和非事务表的份表SQL语句或事务都不允许执行,所以默认关闭掉,需要开启时再启用

查看环境enforce_gtid_consistency参数为开启状态。备报错

复制mysql> show variables like ENFORCE_GTID_CONSISTENCY;+--------------------------+-------+| Variable_name | Value |+--------------------------+-------+| enforce_gtid_consistency | ON |+--------------------------+-------+1 row in set (0.01 sec)1.2.3.4.5.6.7.

下面提供了2种方案,IT技术网份表可以根据情况自由选择

一、备报错方法一:修改数据库参数

解决办法关闭GTID模式

mysql配置my.cnf里面修改参数如下

复制gtid_mode =

OFF

enforce_gtid_consistency = OFF1.2.

重启mysql再次查看已经生效,再次执行备份就不会报错了

复制mysql> show variables like %gtid_mode%;+---------------+-------+| Variable_name | Value |+---------------+-------+| gtid_mode | OFF |+---------------+-------+1 row in set (0.01 sec)mysql> show variables like %enforce_gtid_consistency%;+--------------------------+-------+| Variable_name | Value |+--------------------------+-------+| enforce_gtid_consistency | OFF |+--------------------------+-------+1 row in set (0.01 sec)1.2.3.4.5.6.7.8.9.10.11.12.13.14.

二、方法二:分步操作

方法二采用先复制目标表结构,然后插入数据的方式,这种方法的好处是不用重启数据库

复制mysql> create table deptmember_bak like deptmember;Query OK, 0 rows affected (0.11 sec)mysql> insert into deptmember_bak select * from deptmember;Query OK, 4 rows affected (0.01 sec)Records: 4 Duplicates: 0 Warnings: 01.2.3.4.5.
本文地址:http://www.bzuk.cn/news/321f7599603.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

全站热门

三星笔记本出厂设置完善,用户体验优秀(深入解析三星笔记本的出厂设置及其关键特性)

微软 Windows 11 安卓子系统 root 详细教程:无需借助 Linux,可运行 Magisk

2025 年十大优秀无密码认证工具

鸿蒙HarmonyOS应用开发落地实践,Harmony Go 技术沙龙落地北京

假如你想清理你的 Ubuntu 主机,你可以按照以下的一些简单步骤来移除所有不需要的垃圾文件。移除多余软件包这又是一个内置功能,但这次我们不必使用新得立包管理软件(Synaptic Package Manager),而是在终端中达到目的。现在,在终端窗口中键入如下命令:复制代码代码如下:sudo apt-get autoclean这便激活了包清除命令。这个命令所做的工作是: 自动清除那些当你安装或升级程序时系统所缓存的 .deb 包(即清除 /var/cache/apt/archives 目录,不过只清理过时的包)。假如需要使用清除命令,只需在终端窗口中键入以下命令:复制代码代码如下:sudo apt-get clean然后你就可以使用自动移除命令。这个命令所做的工作是:清除那些 在系统中被某个已经卸载的软件 作为依赖所安装的软件包。要使用自动移除命令,在终端窗口中键入以下命令:复制代码代码如下:sudo apt-get autoremove移除不需要的本地化数据为达到此目的,我们需要安装 localepurge 软件,它将自动移除一些不需要的本地化数据(LCTT 译注:即各种语言翻译)。这个软件是一个简单的脚本,它将从那些不再需要的本地化文件和本地化联机手册( man pages ) 所占用的空间中回收磁盘空间。这个软件将在任何 apt 安装命令运行时 被自动激活。在 Ubuntu 中安装 localepurge:复制代码代码如下:sudo apt-get install localepurge在通过 apt-get install 安装任意软件后, localepurge 将移除所有不是使用你系统中所设定语言的翻译文件和翻译的联机手册。假如你想设置 localepurge,你需要编辑 /ect/locale.nopurge 文件。根据你已经安装的软件,这将为你节省几兆的磁盘空间。例子:假如我试着使用 apt-get 来安装 dicus软件:复制代码代码如下:sudo apt-get install discus在软件安装完毕之后,你将看到如下提示:复制代码代码如下:localepurge: Disk space freed in /usr/share/locale: 41860K移除孤包假如你想移除孤包,你需要安装 deborphan 软件:在 Ubuntu 中安装 deborphan :复制代码代码如下:sudo apt-get install deborphan使用 deborphan,打开终端并键入如下命令即可:复制代码代码如下:sudo deborphan | xargs sudo apt-get -y remove --purge使用 GtkOrphan 来移除孤包GtkOrphan (一个针对 debian 系发行版本的 Perl/Gtk2 应用) 是一个分析用户安装过程状态并查找孤立库文件的图形化工具,它为 deborphan 提供了一个 GUI 前端,并具备移除软件包的功能。在 Ubuntu 中安装 GtkOrphan,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install gtkorphan一张截图使用 Wajig 移除孤包Wajig是 Debian 包管理系统中一个简单的软件包管理前端。它将 apt、apt-cache、 dpkg、 /etc/init.d 中的脚本等 通过一个单一命令集成在一起,它的设计初衷是使用简单和为它的所有功能提供丰富的文档。通过适当的 sudo配置,大多数(假如不是全部)的软件包安装和创建等任务可以通过一个用户 shell 来完成。Wajig 也适用于一般的系统管理。另外,一个 Gnome GUI 命令 gjig也被囊括在这个软件包之中。在 Ubuntu 中安装 Wajig,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install wajigDebfoster --- 跟踪你在安装过程中的操作debfoster 将会维护一个列有被明确需要安装的软件包的列表,但不包括那些作为某个软件的依赖而被安装的软件包。参数是完全可选的,你甚至可以使得在 dpkg 和/或 apt-get 每次运行之后马上激活 debfoster 。另外,你还可以在命令行中使用 debfoster 来安装或移除某些特定的软件包。那些后缀为 --- 的软件包将会被移除,而没有后缀的软件包将会被安装。假如一个新的软件包或 debfoster 注意到作为某个软件包的依赖的软件包是一个孤包,则 debfoster 将会询问你下一步如何操作。若你决定保留这个孤包, debfoster 将只会进行记录并继续安装过程;若你觉得这个软件包不足以引起你的兴趣,在 debfoster 询问这个问题后,它将移除这个软件包。进一步的,假如你的决定使得其他的软件包变为孤包,更多的提问将会接踵而来。在 Ubuntu 中安装 debfoster,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install debfoster使用 debfoster为了创建一个初始跟踪文件,可以使用如下命令:复制代码代码如下:sudo debfoster -q你总可以编辑 /var/lib/debfoster/keepers 文件,来定义那些你想留在系统中的软件包。为了编辑这个文件,可以键入:复制代码代码如下:sudo vi /var/lib/debfoster/keepers要强制使 debfoster 去移除所有没有被列在上面这个文件的软件包,或安装作为某些列在这个文件中的软件包的依赖,它也同时会添加所有在这个列表中没有被安装的软件包。若要根据这个列表来执行相关操作,只需执行:复制代码代码如下:sudo debfoster -f若需要跟踪你新安装的软件包,你需要时不时地执行如下命令:复制代码代码如下:sudo debfosterxdiskusage -- 查看你的硬盘空间都去哪儿了图形化地展示磁盘使用情况的 du。xdiskusage 是一个用户友好型的程序,它将为你展示你所有磁盘的使用情况。 它是在 Phillip C. Dykstra 所写的 “xdu” 程序的基础上设计的。做了一些修改以使得它可以为你运行 “du”命令,并显示磁盘的剩余空间,并且假如你想清晰地了解你的磁盘空间都去哪儿了,它还可以生成一个 PostScript 格式的名为 display.xdiskusage 的文件。在 Ubuntu 中安装 xdiskusage,只需使用如下命令:复制代码代码如下:sudo apt-get install xdiskusage若你想打开这个应用,你需要使用如下命令:复制代码代码如下: sudo xdiskusage一旦这个应用被打开,你将看到如下图所示的界面:BleachbitBleachBit 能快速地释放磁盘空间并不知疲倦地保护你的隐私。它可以释放缓存,删除 cookie,清除 Internet 上网历史,粉碎临时文件,删除日志,丢弃你所不知道存在何处的垃圾。为 Linux 和 Windows 系统而设计,它支持擦除清理数以千计的应用程序,如 Firefox, Internet Explorer, Adobe Flash, Google Chrome, Opera, Safari 等等。除了简单地删除文件,BleachBit 还包括许多高级功能,诸如粉碎文件以防止恢复,擦除磁盘空间来隐藏被其他应用程序所删除文件的痕迹,为火狐“除尘”,使其速度更快等。比免费更好,BleachBit 是一个开源软件。在 Ubuntu 中安装 Bleachbit,打开终端并运行如下命令:复制代码代码如下:sudo apt-get install bleachbit一张截图

55岁程序员在公司内网埋下“失业炸弹”,面临10年监禁

ByteHouse技术详解:基于OLAP构建高性能GIS地理空间能力

在 Linux 命令行中收发 Gmail 邮件

热门文章

友情链接

滇ICP备2023006006号-33