zoukankan      html  css  js  c++  java
  • MySQL错误ERROR 1786 (HY000)解决

    务上需要支持create table XXX as select * from XXX; 这种创建表的语法,但是MySQL5.7.x版本里面gtid是开启的,会报错

    ERROR 1786 (HY000):Statement violates GTID consistency: CREATE TABLE ... SELECT.

    官方说明:https://dev.mysql.com/doc/refman/5.7/en/replication-gtids-restrictions.html

    CREATE TABLE ... SELECT statements.  CREATE TABLE ... SELECT is not safe for statement-based replication. When using row-based replication, this statement is actually logged as two separate events—one for the creation of the table, and another for the insertion of rows from the source table into the new table just created. When this statement is executed within a transaction, it is possible in some cases for these two events to receive the same transaction identifier, which means that the transaction containing the inserts is skipped by the slave. Therefore, CREATE TABLE ... SELECT is not supported when using GTID-based replication.

    解决办法关闭GTID模式:
    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 t1 as select * from BS_CONT;
    Query OK, 0 rows affected (0.12 sec)
  • 相关阅读:
    ELK的学习与应用
    windows 常用命令
    Electron笔记
    C#基础
    IIS运行NetCore程序
    nuget打包
    web pack备忘
    基于并发订课系统的架构演变
    面试造核弹的童话
    Python3-接口自动化-11-使用join方法请求参数拼接,格式key1=value1&keys=value2....
  • 原文地址:https://www.cnblogs.com/Qing-840/p/9913610.html
Copyright © 2011-2022 走看看