问题描述

 RDS MySQL 5.6版本中,GTID特性对临时表进行了限制,导致报错内容如下。

 When @@GLOBAL.ENFORCE_GTID_CONSISTENCY = 1, the statements CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can be executed in a non-transactional context only, and require that AUTOCOMMIT = 1.

 解决方法

 阿里云提醒您:

 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。

 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。

 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

 您可以根据实际情况,选择如下的解决方法。

 1、将create temporary table语句更改为create table,使用普通表替代临时表。

 2、修改代码,将临时表的创建和删除操作放在事务外,并且保证会话的参数为autocommit=1。

虚拟主机怎么使用的?(图1)

 适用于

 云数据库 RDS MySQL 版

 如果您的问题仍未解决,您可以免费咨询久云大使,或登陆阿里云官网提交工单联系阿里云技术支持。

分享
继续阅读相关文章

发表评论 快来秀出你的观点

评论区暂时关闭,请谅解!
评论 点赞 收藏