【MySQL案例】ERROR1786(HY000)_MySQL
【环境描述】
msyql5.6.14
【报错信息】
执行create table ... select的时候遇到报错:
db1 [test] [23:01:58]> create tablelgmnr_bak select * from lgmnr;
ERROR 1786 (HY000): CREATE TABLE ... SELECTis forbidden when @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1
【报错原因】
ERROR1786是由于开启了enforce_gtid_consistency=true功能导致的,MySQL官方解释说当启用enforce_gtid_consistency功能的时候,MySQL只允许能够保障事务安全,并且能够被日志记录的SQL语句被执行,像create table ... select 和 create temporarytable语句,以及同时更新事务表和非事务表的SQL语句或事务都不允许执行。
db1 [test] [23:28:28]> show variableslike 'ENFORCE_GTID_CONSISTENCY';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| enforce_gtid_consistency | ON |
+--------------------------+-------+
【解决方法】
由于enforce_gtid_consistency参数是只读的,所以必须重启MySQL服务才能是配置生效。
尝试在线动态修改时的报错:
db1 [test] [23:37:56]> set globalenforce_gtid_consistency=true;
ERROR 1238 (HY000): Variable'enforce_gtid_consistency' is a read only variable
推荐阅读
-
MySQL分库分表与水平分割取模案例
-
MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server through socket_MySQL
-
MySQL优化案例系列-mysql分页优化
-
mysql error 1130 hy000:Host'localhost'解决方案
-
64位Win10系统安装Mysql5.7.11的方法(案例详解)
-
mysql出现ERROR 1819 (HY000)的解决方法
-
mysql启动时出现ERROR 2003 (HY000)问题的解决方法
-
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
-
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
-
MySQL案例02:(MyCAT报错) [ERROR][$_NIOREACTOR-3-RW] caught err: java.lang.OutOfM emo