備份數據庫中的某個表的數據報錯Statement violates GTID consistency


 

1、錯誤描述

執行CREATE TABLE tig_pairs_20190521 AS SELECT *FROM tig_pairs報錯:

1 queries executed, 0 success, 1 errors, 0 warnings

查詢:call account_check_main('20180511')

錯誤代碼: 1786
Statement violates GTID consistency: CREATE TABLE ... SELECT.

執行耗時 : 0 sec
傳送時間 : 0 sec
總耗時 : 0.066 sec
1
2
3
4
5
6
7
8
9
10
2、錯誤原因
這是因為在5.6及以上的版本內,開啟了 enforce_gtid_consistency=true 功能導致的,MySQL官方解釋說當啟用 enforce_gtid_consistency 功能的時候,MySQL只允許能夠保障事務安全,並且能夠被日志記錄的SQL語句被執行,像create table … select 和 create temporarytable語句,以及同時更新事務表和非事務表的SQL語句或事務都不允許執行。

3、解決方法
方法一(推薦):
修改 :SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY = off;

配置文件中 :ENFORCE_GTID_CONSISTENCY = off;

方法二:
create table xxx as select 的方式會拆分成兩部分。

create table xxxx like data_mgr;
insert into xxxx select *from data_mgr;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM