mysql5.7 启用gtid,导致无法创建和删除表
来源:互联网 发布:手机淘宝老版本官方 编辑:程序博客网 时间:2024/06/05 20:43
mysql version: mysql5.7.18
OS version: CentOS Linux release 7.3
场景:在使用hadoop过程中,访问mysql数据库时,报如下错误信息:
“User can't run DDL statements on the specified database. Attempt to create and drop a table failed.”
原因:在mysql5.7中使用了 GTID模式,引入了GTID参数,如下所示
gtid_mode = ON
enforce_gtid_consistency = ON
enforce_gtid_consistency 强制GTID一致性, 启用后以下命令无法再使用
create table ... select ...
但是在hadoop在使用过程中,恰好使用了上述中的建表语句,所以导致了失败。
具体一点就是create table ... select ...在启用强制GTID后,其实是两个独立事件,不符合强一致性的规则,所以创建失败。
解决方法:暂时的解决方案为,由于环境并不是很重要,所以先把GTID模式停了;
gtid_mode = off
enforce_gtid_consistency = off
修改参数后,重新启动数据库。
其它解决方法:把create table ... select 分解为2个sql来进行,即可解决。
扩展:启用强制GTID一致性的副作用:
(1) 不能同时揉合多个事件;
(2) 事务内部不能创建临时表;
create temporary table
(3) 不能在同一事务中即更新InnoDB表,又更新MyISAM表。
- mysql5.7 启用gtid,导致无法创建和删除表
- mysql5.7使用gtid复制
- MySQL5.7在线开启-关闭GTID
- mysql5.7跳过错误事务GTID
- MySQL5.7 GTID在线开启与关闭
- Mysql5.6.21-GTID复制
- MySQL5.7 基于GTID的多源复制
- mysql5.7 使用gtid复制时的参数设置
- MySQL5.7杀手级新特性:GTID原理与实战
- 在线开关MySQL5.7 GTID与传统快速切换
- MySql安装问题,无法启用3306导致连接失败问题集和解决方法
- mysql5和mysql5.5创建内存表的不同
- mysql5.7创建用户授权-删除用户撤销授权
- mysql5.7创建用户授权删除用户撤销授权
- mysql5.7创建用户授权删除用户撤销授权
- 不允许保存更改。您所做的更改要求删除并重新创建一下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项
- 不允许保存更改。你所做的更改要求删除并重现创建以下表,你对无法重新创建的表进行了更改或者启用了用“阻止保存要求重新创建表的更改”选项“。
- sql Server中不允许保存更改您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项
- android中ActionBar
- RCNN学习笔记(1):Rich feature hierarchies for accurate object detection and semantic segmentation
- TI-CC2640R2-Sensor Controller 开发应用
- Linux for Ubuntu 解决WPS安装缺少libpng12-0的问题
- 搭建FTP服务 搭建Http静态服务器环境
- mysql5.7 启用gtid,导致无法创建和删除表
- HashMap
- CentOS服务器下安装配置SSL
- hibernate_log4j日志记录
- Django学习笔记4-创建模型
- uitableview64像素
- 3.IDA-数据显示窗口(导出窗口、导入窗口、String窗口、...窗口)
- RCNN学习笔记(2):Rich feature hierarchies for accurate object detection and semantic segmentation
- 记录Hibernate的hql操作