Mysql单表备份有很多方式,对于数据量比较大的表,可以使用mysqldump
创新互联公司成立于2013年,先为青神等服务建站,青神等地企业,进行企业商务咨询服务。为青神企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
小表通常使用如下语句就行了。
create table A as select * from B
在一次备份中出现如下错误。
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 1
查询官方资料,原因是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)
下面提供了2种方案,可以根据情况自由选择
解决办法关闭GTID模式
mysql配置my.cnf里面修改参数如下
gtid_mode = OFF
enforce_gtid_consistency = OFF
重启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)
方法二采用先复制目标表结构,然后插入数据的方式,这种方法的好处是不用重启数据库
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: 0
分享标题:MySQL备份表报错ERROR1786
分享路径:http://www.shufengxianlan.com/qtweb/news24/63374.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联